使用jquery.jqprint.js 實現的打印功能,IE9不能進行打印預覽、火狐打印空白界面


提示的內容:SCRIPT438: 對象不支持“ExecWB”屬性或方法

首先解決IE9不能打印預覽的問題:

       查找了一大推資料 ,有兩種說法:一種是IE的安全性級別太高;一種是需要安裝什么   微軟web 瀏覽器,這兩種解決方法對於我的問題都沒有起到效果。無奈之下:只能將IE9 這個瀏覽器的版本號獲取出來,不進行預覽,直接進行信息打印。

jquery 獲取瀏覽器版本號的方法(需要引入的插件為:jquery-migrate-1.1.0.js):

 

[javascript]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
 
  1. var version = $.browser.version;  

 

 

原以為IE9和IE9的兼容版的版本相同,還糾結這塊怎么處理、、、、、、沒想到IE9的版本號為(9.0)IE9兼容版的版本號為(7.0),這就好辦了。。。。。。沒有辦法只能再切打印了

接下來解決火狐不能打印的問題:

[javascript]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
 
  1. var doc = $iframe[0].contentWindow.document;   //兼容各種瀏覽器  
  2. doc.designMode = "on";  
  3.     doc.open();  
  4.     doc.write(data);      
  5.     doc.close();  
  6.     //alert("頁面輸出的內容為"+doc.body.innerHTML); //doc.body.innerHTML 只有IE支持,其他的瀏覽器無效    
  7.     doc.designMode ="off";  

 

進行獲取的數據信息打印,代碼如下:

[javascript]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
 
  1. $iframe[0].contentWindow.focus();  
  2. $iframe[0].contentWindow.print();  

打印出來的界面始終為空白,很是無語。經過一番查詢,就想着是否數據真正寫入iframe  ,於是采用代碼:

[javascript]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
 
  1. alert(document.all.print_iframe.contentDocument.body.innerHTML)  

彈出框是空白。最后只好進行重新復制,最終問題解決,賦值的代碼如下:

[javascript]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
 
  1. document.all.iframe名.contentDocument.body.innerHTML=data;  //data 代表html數據信息  

親們:我這是沒有辦法的辦法,路過的如果有什么更好的解決方法,可以給我留言,提前謝謝了哈。。。。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM