我正在为 IE9 编写一个 Web 应用程序,我需要打开“打印预览”对话框(不是 window.print(),而是可以设置边距等的对话框)
我在这个问题中找到了这段代码 - 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中的错误消息都是这样的:
"Object doesn't support property or method 'ExecWB'"
更新:更多测试表明,该代码可以在某些 IE9/IE11 浏览器(例如在我的计算机上)中运行,但不能在 Azure VM 内的浏览器和我的客户配置上运行。
WebBrowser1 不为 null,并且具有许多属性和方法,例如正确的 classid
,但没有 ExecWB()
方法。
最佳答案
关于javascript - 尝试在 IE9 中调用打印预览对话框时,对象不支持属性或方法 'ExecWB',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43860804/