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()
方法。