我正在尝试通过传递 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/