【问题标题】:Close the window when Chrome print dialog is clicked单击 Chrome 打印对话框时关闭窗口
【发布时间】:2018-12-29 05:44:31
【问题描述】:

当用户单击打印对话框中的print 按钮时,我想关闭 Chrome 中的当前选项卡。我尝试使用window.print()setTimeout(),但即使打印被CANCEL 按钮取消,这也会关闭对话框。 有什么解决办法吗?

这是我到目前为止所做的:

function printThis(){
    window.print();
    setTimeout(function(){
        window.close();
    },5000);
}

【问题讨论】:

  • 谈话很便宜,给我看代码。
  • 我想要的是,当我们从打印对话框(ctrl + p)中单击打印按钮时,应该关闭当前使用的选项卡。
  • 你能分享你试过的代码吗?我相信您需要阻止该事件实现该默认行为,您需要 preventDefault() 方法。
  • 以上代码共享
  • 为什么不从函数中删除window.print() 命令呢?这样它会在调用该函数后 5 秒后关闭。

标签: javascript


【解决方案1】:

你可以在onload中调用这个方法,一旦这个打印对话框被关闭,会自动调用alert提示,询问用户是否打印,如果打印已经完成,用户会被自动重定向到页面。

如果你想关闭窗口,你应该通过window.open方法打开特定窗口,你不能通过URL或重定向打开窗口。

例子:

window.open("https://yourside.com", "_blank", "toolbar=yes,scrollbars=yes,resizable=yes,top=500,left=500,width=400,height=400");

然后你可以在window.open打开的窗口中调用window.close

window.onload = function () {
    window.print();
    setTimeout(function(){ if(confirm("Have you printed ?")) { window.location.href="/your_page"; } }, 1);
}

【讨论】:

  • 这在我的情况下不起作用。在这里我可以点击打印,也可以点击否确认。
【解决方案2】:

请使用此代码。

window.addEventListener("beforeprint", function(event) { ... });
//or
window.onbeforeprint = function(event) { ... };

window.onbeforeprint 将在按下 Ctrl+p 或打开打印对话框时调用

例如

window.addEventListener("beforeprint", 
                        function(event) {
                            window.close();
                        });

或者如果您想在按下打印按钮后关闭窗口,请像这样使用window.onafterprint

window.onafterprint = function(){
   window.close()
}

【讨论】:

  • 如果我也单击取消按钮,这将关闭。我只想在单击打印按钮后关闭
  • 那么你可以使用window.onafterprint这样的事件window.onafterprint = function(){ window.close() }
  • 即使我检查过 onafterprint 。这里的问题是如果我点击取消按钮。
【解决方案3】:

你可以使用onafterprint事件:

window.onafterprint = function(){ window.close() }

【讨论】:

    【解决方案4】:

    非常简单! 在打印页面上(在我的例子中是“print-page.html”)使用这个脚本 -

    <script>
    window.onafterprint = function(){
    window.close()
    }
    </script>
    

    当用户单击打印/取消按钮时,它将关闭新标签!在 chrome 上测试并且工作正常。

    确保你已经使用这个方法调用了打印接口-

    <input type="button" value="button name" onclick="window.open('print-page.html','popUpWindow','height=687,width=1057,left=10,top=10,scrollbars=yes,menubar=no'); return false;" />
    

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-01
      • 2015-01-12
      • 1970-01-01
      相关资源
      最近更新 更多