我想使用JavaScript打开一个word文档,并打开打开文档窗口的打开打印对话框。
这是我的代码。
window.open('http://www.tizaq.com');
window.print();
它可以工作,但打印对话框会打开当前窗口,而不是新打开的窗口。我该怎么做?
答案 0 :(得分:13)
在新窗口而不是旧窗口上调用print
:
var wnd = window.open('http://stackoverflow.com');
wnd.print();
但是,我不喜欢你的可能性,因为它没有与浏览器安全性发生冲突。 :-)“外部”窗口对象可能不支持print
(window
个对象有两种类型,其他窗口可以访问的“外部”类型,以及引用的“内部”类型本身,它有更多的权限,等等。)至少,你可能不得不等待加载事件,但我最好一般来说这将是棘手的。
对于具有相同来源的文档,seems to work,因此Same Origin Policy是一个因素。这个例子在IE6崩溃(字面上崩溃了浏览器),但在Windows上的IE7和Linux上的Chrome和Firefox 3.6(而不是Linux上的Opera 11)中适用于我。将延迟/产量放在那里可能不会受到伤害,例如:
var wnd = window.open(your_path_here);
setTimeout(function() {
wnd.print();
}, 0);
您在问题中说“word文档”,但您的示例看起来像一个网站。如果您通过将Microsoft Word文档加载到浏览器窗口中打开它,那么我不知道这是否有效。
答案 1 :(得分:-1)
嗯,更好的方式
var my_window = window.open("", "mywindow1", "status=1,width=350,height=150");
my_window.document.write("<scr" + "ipt>window.location.href='http://stackoverflow.com';window.print();</scr" + "ipt>");
尝试使用iframe进行打印
,或者更好地创建另一个页面