【发布时间】:2010-03-15 16:22:30
【问题描述】:
我有一个 .Net 应用程序,它可以动态创建一个小的 HTML 页面,并使用 javascript document.open 方法在新窗口中弹出它。具有该功能的一切工作正常。
现在我想在打印页面的 HTML 页面中添加一个按钮。我尝试使用以下代码无济于事:
<a href='print.html' onClick='window.print();return false;'>
<img src='images/printer.png' height='32px' width='32px'></a>
在弹出窗口中单击按钮时,没有任何反应。但是当这个页面的源代码作为一个单独的页面保存并加载到浏览器中时,打印按钮可以完美地工作。 所以看起来问题是由代码在弹出窗口中引起的。 [现在的问题似乎是打开弹出窗口后写入的代码。]有谁知道解决此问题的方法或任何替代方法?
编辑:
我尝试过的其他方法,结果相同:
<input type='button' onclick='window.print()' value='Print' />
和
<a href='javascript:window.print()'>
<img src='images/printer.png' height='32px' width='32px'></a>
再次编辑:
以上代码在 Firefox 中有效,但在 IE7 中无效。关于 IE 的变通方法有什么想法吗?
再次编辑:
这是一个使用下面npupposted的代码的测试用例。我没有将弹出窗口的代码放在单独的 html 文件中,而是打开一个空白 url,然后将代码写入其中。这一步似乎是导致问题的原因。
<html>
<head>
<title>main</title>
</head>
<body>
<h1>
Pop & print</h1>
<button onclick="pop();">
Pop</button>
<script type="text/javascript">
var POP;
function pop() {
var newWin = window.open('', 'thePopup', 'width=350,height=350');
newWin.document.write("<html><head><title>popup</title></head><body><h1>Pop</h1>" +
"<p>Print me</p><a href='print.html' onclick='window.print();return false;'>" +
"<img src='images/printer.png' height='32px' width='32px'></a></body></html>");
}
</script>
</body>
</html>
【问题讨论】:
标签: .net javascript printing popup