2013-07-25 87 views
1

有没有办法在页面打印时禁用JavaScript?在HTML打印页面禁用JavaScript

我已经创建了特定于打印的样式表,但是当我打印预览时,javascript仍然与某些元素(如隐藏部分内容的级联等)进行交互。

当它被打印时,我想禁用所有JavaScript。这甚至有可能吗?

+0

你的问题没有多大意义。当呈现打印预览时,它应该是静态的,并且任何JavaScript已经被执行。没有“仍在进行互动”。你唯一能做的就是用事件来“撤销”JavaScript所做的任何事情。最好的方法是只用JavaScript切换类(而不是直接在元素上设置样式),然后专门为这些类设计打印。 –

回答

1

编辑后

可以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'); 
    } 
}); 
+0

Chrome/Safari/Opera不支持。 –

+0

尝试此操作...编辑后我添加一些代码 –

+0

当Chrome呈现其打印预览时,它将切换媒体进行打印,然后在渲染完成后恢复正常。这可能是一个很好的机会来“撤消”JavaScript所做的任何更改,但为了获得最佳兼容性,正确的方法是让您的打印样式覆盖JavaScript所做的任何操作。 –