當afterPrint發生時,我需要執行doSomethingFunc
。我的代碼在所有瀏覽器上都能正常工作,除了當前的Safari-Versions(OSX上的Safari 10.1和iOS 10.3上的Safari瀏覽器)。看起來事件監聽器(至少是用於打印)不會被這兩個瀏覽器調用。Safari window.matchMedia處理程序未調用
const mediaQueryPrint = window.matchMedia('print');
mediaQueryPrint.addListener((mql) => {
if (!mql.matches) {
setImmediate(doSomethingFunc);
}
});
window.print();
上述代碼與OSX Safari 9.1.2和iOS 10.2的Safari完全兼容。 但不是與當前版本。
有人注意到類似的東西嗎?還是必須改進我的代碼以適應當前的Safari版本?
我的猜測是,這是一個Safari錯誤,因爲在Safari 10.1 changelog章節有一個相應的註釋Accessability。
是的,我已經體驗過相同的事情 - 原來(在我的情況下),如果打印在1頁內,它會觸發處理程序就好了。如果打印頁面超過一頁,則會被完全忽略。 雖然我還沒有發現任何錯誤報告。 – Rolchau
是的,我想這個功能並不經常使用。如果您在bugreport.apple.com上撰寫了錯誤報告,我將非常高興。我也是這樣做的。令人遺憾的是,蘋果對它的缺陷很不透明,所以我們不知道蘋果是否已經注意到它。 – m4lt3