我正在使用经典的asp,在一个页面上我使用window.print()方法来打印页面。我使用的脚本显示打印对话框,并在IE中打印正常,但使用FF它只打印一个空白页
如果我使用control + p在fire fox中打印页面,那么页面打印没有问题,因此它不是渲染问题
这是我正在使用的脚本:
function printform(url) {
var windowReference = window.open(url, "Header", 'width=600,height=600,toolbar=no,resizable=yes,scrollbars=yes,menubar=no');
if (window.print)
windowReference.print()
}
提前致谢。
感谢Prusse
,这是一个我想出来的工作function printform(url){
var windowReference = window.open(url, "Header", 'width=600,height=600,toolbar=no,resizable=yes,scrollbars=yes,menubar=no');
if (window.print)
if (navigator.appName == "Netscape") {
windowReference.onload = function(){ windowReference.print(); }
}
else {
windowReference.print()
}
}
答案 0 :(得分:4)
它停止工作,因为IE已经加载了文件并且已经解雇了onload事件。您可以检查文档是否已加载,只需调用print,如果不是,则调用事件处理程序。
function printform(url) {
var windowReference = window.open(url, "Header", 'width=600,height=600,toolbar=no,resizable=yes,scrollbars=yes,menubar=no');
//if (window.print)
// windowReference.print();
if (windowReference.print){
var done = false;
if (windowReference.document && windowReference.document.readyState){
var rs = windowReference.document.readyState;
if ((rs === 'complete') || (rs === 'loaded')){
done = true;
windowReference.print();
}
}
if (!done){
if (windowReference.addEventListener){
windowReference.addEventListener('load', function(){ this.print(); });
} else{
windowReference.onload = function(){ this.print(); };
}
}
}
}