<script>
var win = window.open();
win.document.body.innerHTML = "this is html that I want to print";
win.onload = function () { win.print(); }
</script>
一切正常但是打印,我如何等待页面加载带有空白URL的动态html,然后打印?
我认为没有办法做到这一点,就像我下面的用户一样,onload可能不会开火,因为只要窗口打开,页面就已经加载了。我要做的是首先加载整个页面然后打印。我发布的脚本没有这样做。
马丁,使用你的代码:
<script>
var win = window.open();
win.document.body.innerHTML = "<img src='https://upload.wikimedia.org/wikipedia/commons/2/24/Willaerts_Adam_The_Embarkation_of_the_Elector_Palantine_Oil_Canvas-huge.jpg'/>";
win.print();
</script>
在Chrome中,它会打印一个空白页。
编辑:
Martin,onload img属性就行了。以下是我为修改脚本所做的工作:
<script>
var win = window.open();
var html = "this is some test html <br><img src='https://upload.wikimedia.org/wikipedia/commons/2/24/Willaerts_Adam_The_Embarkation_of_the_Elector_Palantine_Oil_Canvas-huge.jpg'/>";
html = html.replace("<img ","<img onload='window.print();' ");
win.document.body.innerHTML = html;
</script>
所以所有img标签都会添加一个onload = window.print。但实际上只有其中一个需要上传(我很确定......)。但是为了给你提供更多信息,在我的场景中,变量html可以是无数个图像,随机文本,表格等等。它可以是任何东西。感谢Martin耐心重读这个帖子并回复。
答案 0 :(得分:0)
杰夫,为了让它与图像一起使用,我在下面粘贴了一个例子。但是,根据最终页面的确切位置,可能需要更通用的解决方案。你的页面会更复杂吗?
<script>
var win = window.open();
win.document.body.innerHTML = "<img src='https://upload.wikimedia.org/wikipedia/commons/2/24/Willaerts_Adam_The_Embarkation_of_the_Elector_Palantine_Oil_Canvas-huge.jpg' onload='window.print();'/>";
</script>
这适用(没有图像):
<script>
var win = window.open();
win.document.body.innerHTML = "this is html that I want to print";
win.print();
</script>
我不认为你需要加载,因为你没有加载页面,所以可能它不会被解雇。