微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.net – 如何从javascript中的弹出窗口打印?

我有一个.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的解决方案的任何想法?

再次编辑:

以下是使用下面的npup posted代码的测试用例.而不是弹出窗口的代码生活在一个单独的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>

解决方法

这是一个适合我的解决方案:
newWin.document.write( newhtml );
newWin.window.location.reload();    // this is the secret ingredient
newWin.focus();                     // not sure if this line is necessary
newWin.print();

我不是百分之百确定为什么这有效但我认为它与以下之一有关:(1)IE安全问题,(2)范围问题(即在创建新文档后,IE很困惑哪个要打印的文件),或(3)计时问题 – 文件尚未准备好’接受’打印命令.在任何情况下,重新加载后,打印对话框都会出现问题.

原文地址:https://www.jb51.cc/js/156543.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐