有没有办法在页面打印时禁用JavaScript?在HTML打印页面禁用JavaScript
我已经创建了特定于打印的样式表,但是当我打印预览时,javascript仍然与某些元素(如隐藏部分内容的级联等)进行交互。
当它被打印时,我想禁用所有JavaScript。这甚至有可能吗?
有没有办法在页面打印时禁用JavaScript?在HTML打印页面禁用JavaScript
我已经创建了特定于打印的样式表,但是当我打印预览时,javascript仍然与某些元素(如隐藏部分内容的级联等)进行交互。
当它被打印时,我想禁用所有JavaScript。这甚至有可能吗?
编辑后
可以WebKit的使用
window.onbeforeprint = function() { }
和
window.onafterprint = function() { }
OOK这应该工作
var mediaQuery = window.matchMedia('print');
mediaQuery.addListener(function(mql) {
if(mql.matches) {
console.log('before print');
}
else {
console.log('after print');
}
});
Chrome/Safari/Opera不支持。 –
尝试此操作...编辑后我添加一些代码 –
当Chrome呈现其打印预览时,它将切换媒体进行打印,然后在渲染完成后恢复正常。这可能是一个很好的机会来“撤消”JavaScript所做的任何更改,但为了获得最佳兼容性,正确的方法是让您的打印样式覆盖JavaScript所做的任何操作。 –
你的问题没有多大意义。当呈现打印预览时,它应该是静态的,并且任何JavaScript已经被执行。没有“仍在进行互动”。你唯一能做的就是用事件来“撤销”JavaScript所做的任何事情。最好的方法是只用JavaScript切换类(而不是直接在元素上设置样式),然后专门为这些类设计打印。 –