contentWindow.document.execCommand('print',false,null)在firefox中不起作用

时间:2014-08-15 08:24:58

标签: jquery iframe

我现在正在为iframe实现一些打印功能,我正在使用下面的代码:

 $('#printBtn').click(function(){
     var iframe = document.getElementById('previewInfoBodyFrame');
     iframe.contentWindow.document.execCommand('print', false, null);
     return false;     
}); 

但我发现在firefox浏览器中,它不能正常工作,但对于IE,Chrome和Safari,它运行正常。搜索了很多,但无法弄清楚这是怎么发生的。谁能提出一些想法?感谢

2 个答案:

答案 0 :(得分:2)

Firefox不支持

execCommand('print')

https://developer.mozilla.org/en-US/docs/Web/API/document.execCommand

您可以改为使用print()功能。

window.print() ;

https://developer.mozilla.org/en-US/docs/Web/API/Window.print

你可能想读这个: Printing a (part of) webpage with Javascript

希望这有帮助。

答案 1 :(得分:1)

在naota的帮助下,我为firefox解决了这个问题,这是我打印iframe内容的完整解决方案,对我来说很好。

 $('#printBtn').click(function(){
    var iframe = document.getElementById('previewInfoBodyFrame');
    if(navigator.userAgent.toLowerCase().indexOf("firefox")!=-1){
         iframe.contentWindow.print();              
    }else{
         iframe.contentWindow.document.execCommand('print', false, null);
    }
    return false;     
 } );