Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Window.Print()在chrome/Firefox中不工作_Javascript_Dom - Fatal编程技术网

Javascript Window.Print()在chrome/Firefox中不工作

Javascript Window.Print()在chrome/Firefox中不工作,javascript,dom,Javascript,Dom,我正在使用以下代码打印div中的内容。它在IE中显示良好,但在chrome和firefox中显示空白屏幕 代码: IE和其他浏览器的单独代码。它现在运转良好 代码: var原始内容; 函数打印(){ if(/MSIE(\d+\.\d+;/.test(navigator.userAgent)){ var DocumentContainer=document.getElementById('termscmaindiv'); var WindowObject=window.open(“”,“Prin

我正在使用以下代码打印div中的内容。它在IE中显示良好,但在chrome和firefox中显示空白屏幕

代码:


IE和其他浏览器的单独代码。它现在运转良好

代码:


var原始内容;
函数打印(){
if(/MSIE(\d+\.\d+;/.test(navigator.userAgent)){
var DocumentContainer=document.getElementById('termscmaindiv');
var WindowObject=window.open(“”,“PrintWindow”,
“宽度=800,高度=700,顶部=200,左侧=200,工具栏=否,
滚动条=是,状态=否,可调整大小=否”);
WindowObject.document.writeln(DocumentContainer.innerHTML);
WindowObject.document.close();
WindowObject.focus();
WindowObject.print();
WindowObject.close();
}
否则{
originalContents=document.body.innerHTML;
var printable=document.getElementById('termscmaindiv');
document.body.innerHTML=printable.innerHTML;
打印优惠券();
}
}
函数print优惠券(){
window.print();
endPrint优惠券();
}
函数endPrint优惠券(){
document.body.innerHTML=原始内容;
document.getElementById('termscmaindiv').scrollIntoView(true);
location.reload();
}

这似乎也在起作用:

WindowObject.document.writeln(html);
WindowObject.document.close();
WindowObject.scrollTo(0,0); 
WindowObject.focus();
WindowObject.print();

当我发现注释掉.print()函数可以正确呈现弹出页面时,我发现了这一点。scrollTo触发通常由页面前面的打印对话框阻止的渲染。

文档。write
是邪恶的,请尽最大努力阻止它。(事实上我相信你总能阻止它。)什么是
document.close()
?(在线5)-对我来说很好。也许你的HTML有问题?
 <script type='text/javascript'>
 var originalContents;
    function Print() {

        if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
            var DocumentContainer = document.getElementById('TermsSCMainDiv');
            var WindowObject = window.open('', "PrintWindow", 
"width=800,height=700,top=200,left=200,toolbars=no,
 scrollbars=yes,status=no,resizable=no");
            WindowObject.document.writeln(DocumentContainer.innerHTML);
            WindowObject.document.close();
            WindowObject.focus();
            WindowObject.print();
            WindowObject.close();
        }
        else {
            originalContents = document.body.innerHTML;
            var printable = document.getElementById('TermsSCMainDiv');
            document.body.innerHTML = printable.innerHTML;
            printCoupon();
        }
    }

    function printCoupon() {
        window.print();
        endPrintCoupon();
    }

    function endPrintCoupon() {
        document.body.innerHTML = originalContents;
        document.getElementById('TermsSCMainDiv').scrollIntoView(true);
        location.reload();
    }
 </script>
WindowObject.document.writeln(html);
WindowObject.document.close();
WindowObject.scrollTo(0,0); 
WindowObject.focus();
WindowObject.print();