试试这个。把这个说的iframe:
function printPage() { print(); }
然后是在父:
function printIframe(id)
{
var iframe = document.frames ? document.frames[id] : document.getElementById(id);
var ifWin = iframe.contentWindow || iframe;
iframe.focus();
ifWin.printPage();
return false;
}
如果这也不行,我想尝试开辟一个新窗口/标签,并用HTML打印填充。
var printwin = window.open("about:blank", "_new");
printwin.document.open();
printwin.document.write("HTML goes here..javascript which is going to print is in there too..");
printwin.document.close();
两个小事情需要注意的是
- 在新窗口拆分
</script>
,这样你就不会过早地终止
- 使用的setTimeout()的onLoad后执行()已完成,否则Firefox用户可能会在打印对话框下看到一个空白页面
如果我调用它两次,我希望在其他浏览器上有相同的行为。嗯... – 2010-07-19 13:18:15
@Diodeus你得到2打印对话框与我的[小提琴](http://jsfiddle.net/Kq9dc/)? – quantumSoup 2010-07-19 15:02:47
@Diodeus更多测试,他们似乎工作正常 – quantumSoup 2010-07-19 17:34:43