chrome中的Javascript window.close(),当从一个链接同时打开多个选项卡时,一次关闭所有选项卡
嘿,我正试图通过打开一个新的打印选项卡来打印页面,其中chrome中的Javascript window.close(),当从一个链接同时打开多个选项卡时,一次关闭所有选项卡,javascript,ajax,google-chrome,Javascript,Ajax,Google Chrome,嘿,我正试图通过打开一个新的打印选项卡来打印页面,其中打印预览会自动打开,如果用户打印或取消页面,它会自动关闭。但是当我在两个选项卡上打开它时,打印预览仅在一个选项卡上加载,而在另一个选项卡上,打印预览未加载。有什么解决办法吗 更新 我注释掉了setTimeout方法,现在我可以在每个选项卡上打开打印预览,但当我关闭一个打印预览时,我的所有其他选项卡都将关闭 我通过点击一个链接打开我的打印页面,就像这样 a(href=“/article/print/{article['id]}}”,target
打印预览
会自动打开,如果用户打印或取消页面,它会自动关闭。但是当我在两个选项卡上打开它时,打印预览
仅在一个选项卡上加载,而在另一个选项卡上,打印预览
未加载。有什么解决办法吗
更新
我注释掉了setTimeout方法,现在我可以在每个选项卡上打开打印预览,但当我关闭一个打印预览时,我的所有其他选项卡都将关闭
我通过点击一个链接打开我的打印页面,就像这样
a(href=“/article/print/{article['id]}}”,target=“\u blank”)
更新
现在我试着用\u new
代替\u blank
或tab name。但是,当我单击“从4个不同位置打印”时,不同文章的4个选项卡将打开“打印预览”,但取消其中一个选项卡上的打印预览,直到我取消打开的第一个选项卡上的打印预览,选项卡才会关闭。Ajax调用也停止了
更新
我有一个无限滚动的网站。这意味着第一篇文章我通过烧瓶之后,我使用Ajax调用获得其他文章,如果用户滚动一点。现在我在每篇文章上都有打印按钮。当用户单击某个打印按钮时,如果我使用了target=\u blank
将打开一个新选项卡,并打开“打印预览”。现在,如果他再次点击打印按钮,一个新的标签将打开该文章的打印预览。现在,如果他取消或打印页面,选项卡应该自动关闭。但只有当用户打开一个选项卡时,才会发生这种情况。如果他通过单击“打印”按钮打开了多个选项卡,则当他取消已打开的第一个选项卡时,所有“打印预览”选项卡都将关闭;如果他取消了第二个或第三个选项卡,则在他设法取消第一个选项卡上的打印之前,任何“打印预览”选项卡都不会关闭
例如:
infiniteScroll.html
document.addEventListener("DOMContentLoaded", printFunction);
function printFunction() {
//setTimeout(function(){
var file_name = ("{{article['title']}}".replace(/[^0-9a-zA-Z_?: .]/g, ""));
document.title="Scroll - "+file_name;
window.print();
setTimeout(function(){window.close();}, 1);
//}, 1);
}
<html>
<ul>
<li>
<a href="print.html" target="_blank">print</a>
</li>
<li>
<a href="print.html" target="_blank">print</a>
</li>
<li>
<a href="print.html" target="_blank">print</a>
</li></ul>
</html>
而且,若打印预览选项卡并没有关闭,我对网站的AJAX调用就不会发生
同样的问题
更新/问题
你要打开它们吗?
a(href=“/article/print/{{article['id']}”,target=“\u blank”)
我需要关闭用户完成打印或取消打印的选项卡。但是当我这样做的时候,我的所有打开的标签都关闭了,我仍然不明白“当一个链接中同时打开多个标签”的意思是当你点击打印按钮两次或三次时,会打开三个不同的标签。
<html>
<body>
<p>sldfnksdfsdvncsjdnvjkndsc</p>
<script type="text/javascript">
document.addEventListener("DOMContentLoaded", printFunction);
function printFunction() {
//- setTimeout(function(){
//- LazyX.load();
var file_name = ("{{article['title']}}".replace(/[^0-9a-zA-Z_?: .]/g, ""));
document.title="Scroll - "+file_name;
window.print();
setTimeout(function(){window.close();}, 1);
//- }, 1);
}
</script>
</body>
</html>