2010-07-21 65 views
7

我有一个页面调用window.print();在页面底部。我无法访问window.print();它由服务器生成,我无法触摸它。基本上因为IE浏览器,我需要在打印对话框出现之前,但在页面加载之后执行一些javascript。我不能这样做,因为只要它到达window.print();打印对话框出现。我仍然需要打印,但首先我需要运行myFunction()然后我可以window.print();执行函数在页面到达之前window.print()

<html><head></head><body></body><!--no access from here--><script>window.print();</script></html> 

回答

16

您应该能够覆盖它是这样的...

var _print = window.print; 
window.print = function() { 
    alert("Hi!"); 
    // do stuff 
    _print(); 
} 
+0

我可以发誓我试过了。尽管如此,这种方式很好谢谢! – joe 2010-07-21 21:22:17

+0

Awww,打我一拳! +1。 – 2010-07-21 21:23:06

+0

@joe没问题,欢迎来到Stack Overflow!要“接受”这个答案,您可以在投票向下箭头下单击复选标记。 – 2010-07-21 21:23:51

8

“基本上是因为IE的我需要......”

如果你只需要IE浏览器支持,请参阅onbeforeprint事件。

window.onbeforeprint = function() { 
    // some code  
} 

这里的好处是,代码将无法在不支持onbeforeprint,这是相当多的,除了IE浏览器的每一个浏览器中运行。

+0

哇那新一!! – joe 2010-07-21 21:30:09

0

尝试把另一<script>标签中的一个,你没有获得如前:

<html><head></head><body></body><script>alert('Hello There !');</script><script>window.print();</script></html>