2009-12-10 70 views
0

我是一个新手。请原谅,如果这是一个非常基本的问题。我隐藏并在window.print()上显示CSS。在IE8和FF上页面执行停止,直到我对打印作出响应(打印或取消),然后再次启动并完成页面加载。但在IE6和IE7上,页面加载不会等待,直到我在打印对话框中作出响应。我如何暂停页面执行,直到我在打印对话框上作出响应(打印或取消)?我不想使用settimeout,因为它是在特定的时间。如果我选择立即打印,页面将不会加载,直到settimeout过期,反之亦然。请帮忙。等到打印完成 - jquery Asp.net MVC

+0

您已经提出了五个问题,从未投过票,只接受过一个答案。如果您发现本网站的建议有帮助,您应该对任何您认为有帮助的答案投票(通过点击答案中的向上箭头)并接受最有帮助的答案。这是一种说“谢谢!”的方式 – 2009-12-10 22:01:46

回答

1

不要隐藏和显示在window.print()。它永远不会正常工作,并会导致其他问题。

相反,使用单独的打印CSS文件:

<link href="/Content/Print.css" rel="stylesheet" type="text/css" media="print"/> 

该文件定义打印样式,如:你不想

.noprint 
{ 
    display: none !important; 
} 

然后,您可以标记元素打印:

<img class="foo bar noprint" ... 

与隐藏和显示上window.print(),这个工程用JavaScript DISABL编辑。

+0

亚..你说得对。即使我想过。但是我想在实际打印之前显示页面的预览。所以,这迫使我使用隐藏和显示。我个人讨厌这样做。你有什么想法如何做? – bluwater2001 2009-12-10 22:12:02

+0

在新窗口中打开预览,该窗口使用打印样式表,除非没有'media =“print”'。 – 2009-12-10 22:15:00

+0

谢谢克雷格。期待你的答复。直到现在,我总是以名字亲自感谢人们。我认为这是更好的方式来表达谢意。但我会确保我将从现在起标记为答案.. – bluwater2001 2009-12-11 16:17:41