我正在努力解決這個問題,今晚我的成就一直不大。我認爲如果我只知道在調用window.print()
函數時觸發了什麼事件,我可以使代碼在下面工作。調用window.print()時觸發了什麼事件?
var browser_name = navigator.appName;
if(browser_name == 'Microsoft Internet Explorer'){
window.attachEvent("print()",on_print_function);//I realize I cannot attach an event listener to a function, I just wanted you to see what I am trying to accomplish
}
else{
window.addEventListener("print()",on_print_function,false);
}
當print
事件發生時調用該函數返回存儲在數據庫中的某些信息的頁面。
我的最終目標是隻有當問題信息將被存儲在數據庫中時纔打印頁面。 我很樂意解決這個問題,但我認爲如果我可以按照我所說的那樣獲得print()
的活動,那麼它就會好起來。
編輯
我對這個放棄現在,我已經有做我想做的另一種方式解決。我期待着FireFox支持onbeforeprint()
和onafterprint()
的那一天。
打印按鈕是一種選擇,但我真的想趕上當人們去'文件>打印'。如果我只關心IE,函數'onbeforeprint()'會適用於我,但我也需要在FireFox中工作。我的另一個問題有這樣的背景信息: http://stackoverflow.com/questions/3339789/onbeforeprint-and-onafterprint-equivalent-for-non-ie-browsers-php-mysql-ja – ubiquibacon 2010-07-27 05:11:47
據我所知其他瀏覽器不支持這些事件,並且您將遇到問題。也許,一個稍微不同的方法。這個數據是頁面上的一個表單嗎?這個數據可以在網頁上提交嗎?在頁面上的提交按鈕之後,是否可以將用戶導航到打印頁面? – sTodorov 2010-07-27 05:22:53
問題是,我正在處理的頁面是一系列客戶賬單,打印後會自動郵寄。如果用戶不打印頁面,頁面只是一個評論,但如果他們打印頁面,那麼數據庫需要更新以說明賬單已經打印並且已經被郵寄。我不能抓住用戶打印賬單和數據庫沒有更新的機會。我需要他們一個接一個地發生。 – ubiquibacon 2010-07-27 05:33:36