未调用Safari的window.matchMedia处理程序
发生afterPrint时,我需要执行doSomethingFunc
。 我的代码在所有浏览器上工作正常,除了当前的Safari版本(OSX上的Safari 10.1和iOS 10.3上的Safari浏览器)。 看来,事件监听器(至less对于打印)不被称为这两个浏览器。
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 更改日志章节Accessability中有相应的注释。
你不想打电话吗?
setImmediate(doSomethingFunc);
什么时候
mql.matches
是真的? 为什么 '!' 然后?