如何使用JavaScript打开带有打印对话框的文件

时间:2011-04-15 08:54:44

标签: javascript printing

我想使用JavaScript打开一个word文档,并打开打开文档窗口的打开打印对话框。

这是我的代码。

window.open('http://www.tizaq.com');

window.print();

它可以工作,但打印对话框会打开当前窗口,而不是新打开的窗口。我该怎么做?

2 个答案:

答案 0 :(得分:13)

在新窗口而不是旧窗口上调用print

var wnd = window.open('http://stackoverflow.com');
wnd.print();
但是,我不喜欢你的可能性,因为它没有与浏览器安全性发生冲突。 :-)“外部”窗口对象可能不支持printwindow个对象有两种类型,其他窗口可以访问的“外部”类型,以及引用的“内部”类型本身,它有更多的权限,等等。)至少,你可能不得不等待加载事件,但我最好一般来说这将是棘手的。

对于具有相同来源的文档,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进行打印

,或者更好地创建另一个页面