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调用就不会发生

同样的问题

更新/问题

  • 打开打印预览的多个选项卡(通过单击所有3个打印),则我无法在打印后自动关闭选项卡或取消第2/3或第4个选项卡。但是,如果我打印或取消打印中第一个打开的选项卡,我可以自动关闭

  • 如果我打开打印预览的多个选项卡,如果我取消或打印第一个选项卡,所有选项卡都将关闭

  • 如果在无限页面上调用AJAX之前打开打印预览。然后我需要等待打印页面完成或取消上面共享的打印预览.link


  • 你要打开它们吗?
    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>