我想在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")
})
}
答案 0 :(得分: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
希望这会有所帮助:)
答案 1 :(得分:0)
所以基本上你想做什么,或者更确切地说,你可以做的是制作你想要打印的页面。在新标签页中打开该页面。然后在要打印的页面正文的底部,添加:
<script>
var yourName= "whateverYouWannaNameTheDocument";
document.title = yourName;
window.print();
</script>
这对我来说在生成发票时很有用。