javascript - 使用 javascript 打印自定义 url 不起作用

标签 javascript printing window

我正在尝试通过传递 window.open url 并使用 window.focus、window.print 来打印我域中的另一个页面。但是,打印预览只显示一个空白页。我猜我必须等到页面加载完毕,但我不确定该怎么做。这是代码:

var newWin=window.open('http://mydomain.com');
newWin.focus(); 
newWin.print(); 
newWin.close();

我试过类似的东西

newWin.onload() {
    newWin.print();
});

没用。

编辑 1:

var newWin=window.open('http://localhost:76');
newWin.focus(); 
newWin.onload = newWin.print();
newWin.close();

同样的问题仍然存在

编辑 2:

var newWin=window.open('http://localhost:76');
newWin.focus(); 
newWin.body.onload = newWin.print();

在这里添加 newWin.close() 会导致打印函数 错误并只打印
页面的标题。否则,页面打印正确

编辑 3:

function printWin(newWin) {
    newWin.print();
    newWin.close();
}

var newWin = window.open('http://localhost:76');
newWin.focus();
newWin.body.onload = printWin(newWin);

这会导致打印像以前一样过早发生,预览空白页。卧槽:(

最佳答案

打开弹出窗口。然后检查弹出窗口是否准备就绪。准备就绪后,注入(inject) javascript。

<script type="text/javascript">

    var popup = window.open("b.htm");
    var body;
    function check() {
        body = popup.document.getElementsByTagName("body");
        if (body[0] == null) {
            setTimeout(check, 50);
        } else {
            var n = popup.document.createElement("script");
            n.src = "printandclose.js";
            body.appendChild(n);
        }
    }
    check();

</script>

打印和关闭

window.print();
window.open("", "_self");
window.close();

让我知道它是否有效。如果您不添加 window.open("", "_self");,将弹出一个警告,告诉用户窗口即将关闭。

关于javascript - 使用 javascript 打印自定义 url 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10604386/

相关文章:

特定时间后JavaFX 2 Window.hide

wpf - 在全屏 WPF 上隐藏任务栏

javascript - yelp api v3 javascript 如何获取访问 token

javascript - 当修饰符选项为 true 时,验证对象必须至少有一个运算符 - 集合 2 包 - Meteor

javascript - 解析函数返回空 Promise

javascript - 如何使用 Mongoose 的 addToSet 添加多个 ObjectId?

java - 在Java中,我可以在打印时选择开始行/列的位置吗?

c++ - LPT POS 打印机备用进纸

php - 为什么 print 和 echo 在 "for"循环中表现不同

Java - 额外的窗口按钮