我有一个.Net应用程序,它动态地创建一个小的HTML页面,并使用javascript document.open方法在新窗口中弹出它。所有与该功能的工作正常。如何从JavaScript中的弹出窗口打印?
现在我想添加一个按钮到打印页面的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浏览器?
EDIT再次:
下面是使用代码低于npupposted测试用例。而不是弹出窗口的代码生活在一个单独的HTML文件,我打开一个空白的网址,然后编写代码。这一步似乎是导致问题的原因。
<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>
这有相同的结果,工作在一个单独的浏览器窗口,而不是从一个弹出。 – sglantz 2010-03-15 16:55:00
嗯!当我点击该按钮时,打开打印机堆栈供我选择打印机。你有打印机吗?也许它无法找到打印机?但无论如何它应该打开打印机选择框。 – azamsharp 2010-03-15 17:09:59
您是否尝试使用弹出窗口中的代码?这似乎是导致问题的原因。 – sglantz 2010-03-15 18:31:25