【问题标题】:Printing a page using javascript does not work使用 javascript 打印页面不起作用
【发布时间】:2013-08-30 08:42:18
【问题描述】:

以下 HTML 页面应在新窗口中打开 http://www.seznam.cz,然后打开“打印”对话框以允许打印。

<html>
    <head>
        <script>
            function printPage() 
            {
                var newWindow = window.open("http://www.seznam.cz", "seznam");
                newWindow.document.close();
                newWindow.focus();
                newWindow.print();
                newWindow.close();
            }
        </script>
    </head>
    <body>
        <a onClick="printPage(); return false;" href="">Print</a>
    </body>
</html>

但是它只打印一个空白页,右上角有“about:blank”,右下角是当前日期和时间。

为什么没有按预期工作?

【问题讨论】:

  • 可能与this question有关,也可能是same origin policy的问题。
  • 是的,我想这确实是同源策略的问题。这就是为什么@collprarun 的版本有效而​​原始版本无效的原因。

标签: javascript


【解决方案1】:

试试这个..它将打印页面。您可以将其更改为您的要求。

<input type="button" value="Print" onclick="printPage('content');"></input>

function printPage(id)
{
   var html="<html>";
   html+= document.getElementById(id).innerHTML;
   html+="</html>";

   var printWin = window.open('','','left=0,top=0,width=1,height=1,toolbar=0,scrollbars=0,status  =0');
   printWin.document.write(html);
   printWin.document.close();
   printWin.focus();
   printWin.print();
   printWin.close();

}

【讨论】:

  • 我觉得你输了&lt;script type="text/javascript"&gt;...&lt;/script&gt;
  • 哦,感谢@AldiUnanto 的更正
【解决方案2】:

原因是,因为你在你的函数中再次关闭了窗口。删除

newWindow.document.close();
newWindow.close();

空白页的原因是,因为您指定了一个空字符串作为href 值。从标签中删除href属性。

【讨论】:

  • 不幸的是,这不起作用。即使我删除了这两行,结果仍然是一样的。
猜你喜欢
  • 2011-09-22
  • 2012-02-08
  • 2018-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-30
  • 1970-01-01
相关资源
最近更新 更多