0

我正在爲IE9編寫Web應用程序,我需要打開「打印預覽」對話框(而不是window.print(),但一個在那裏他們可以設置頁邊距等)當試圖調用IE9中的打印預覽對話框時,對象不支持屬性或方法'ExecWB'

我發現這個代碼在這個問題 - Open another page or image in print Preview

function PrintPreview() 
{ 
    var OLECMDID = 7; 

    /* OLECMDID values: 
    * 6 - print 
    * 7 - print preview 
    * 0 - open window 
    * 4 - Save As 
    */ 

    var PROMPT = 1; // 1 PROMPT USER 2 DON'T PROMPT USER 
    var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>'; 


    window.document.body.insertAdjacentHTML('beforeEnd', WebBrowser); 

    WebBrowser1.ExecWB(OLECMDID, PROMPT); 
    WebBrowser1.outerHTML = ""; 

} 

不過,此行失敗:

WebBrowser1.ExecWB(OLECMDID, PROMPT);

兩個IE9和IE11的錯誤信息是這樣的:

「對象不支持屬性或方法‘ExecWB’」

更新:更多的測試表明,該代碼在一些IE9/IE11瀏覽器(例如我的機器上),但不適用於Azure虛擬機中的瀏覽器和客戶配置。

WebBrowser1不爲空,並且有很多屬性和方法,例如正確的classid,但沒有ExecWB()方法。

回答

0

事實證明,如果這個選項被設置爲 「禁用」 在IE Tools =>Internet Options =>Security =>Security Settings代碼不起作用:

Allow Scriptlets option in IE

相關問題