【问题标题】:Open a new window in javascript with print dialog?在带有打印对话框的javascript中打开一个新窗口?
【发布时间】:2016-07-04 20:55:32
【问题描述】:

我想在已打开打印窗口的 javascript 中打开一个新选项卡。我尝试了以下代码,但它不起作用

function OpenInNewTab() {
        var win = window.open('http://stackoverflow.com/questions/6808650/triggering-ctrl-s-or-ctrl-p-via-a-button', '_blank');
        console.log(win);
        win.focus();
        win.onload = function() {
            win.print();
        };
    }

我怎样才能达到同样的目的

编辑 1:

我也试过这样,但没有用

function OpenInNewTab() {
        var win = window.open('http://stackoverflow.com/questions/6808650/triggering-ctrl-s-or-ctrl-p-via-a-button', '_blank');
        win.document.attachEvent("load", function() {
            window.print();
            alert("called")
        })

    } 

【问题讨论】:

  • 代码看起来不错,有什么错误信息吗??
  • 没有错误信息,但它也不起作用
  • 等一下,我在某个项目中实现了这个,让我找到它。
  • @gaurav 您在哪个浏览器中测试?
  • 我在 chrome 中测试

标签: javascript


【解决方案1】:

我发现了为什么在 chrome 中无法正常工作的问题。请参考以下代码:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="text" id="age_validation_input"> <button type="button" id="age_validation_btn" onclick="OpenInNewTab()"> Test </button>

<script type="text/javascript">
function OpenInNewTab() {
        var win = window.open('https://stackoverflow.com/questions/6808650/triggering-ctrl-s-or-ctrl-p-via-a-button', '_blank','height=600,width=800');
        console.log(win);
        win.focus();
        //win.onload = function() {
        //  alert("Hello");
        //    print();
        //};
        //win.onload = "alert('hello');"

        setTimeout(function(){win.print();win.close();}, 3000);
    }

</script>

当您运行上面的代码时,它会显示以下错误:

所以,要解决这个问题,请参考How do I get around window.opener cross-domain security

希望这会有所帮助:)

【讨论】:

    【解决方案2】:

    所以基本上你想要做的,或者更确切地说,你能做的就是制作你想要打印的页面。在新选项卡中打开该页面。然后在要打印的页面正文的底部添加:

     <script>         
       var yourName= "whateverYouWannaNameTheDocument";
                document.title = yourName;
                window.print();
    </script>
    

    这在生成发票时对我有用。

    【讨论】:

      猜你喜欢
      • 2016-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-02
      • 1970-01-01
      • 2013-12-10
      • 2023-03-30
      相关资源
      最近更新 更多