我正在构建一个小型Web应用程序,需要通过ActiveX和Javascript(以及IE9 ...)访问Powerpoint以自动构建报告。我正在使用ActiveX,因为我无法在服务器端生成Powerpoint文件(虽然我会非常喜欢它)。
我现在的代码非常无聊,因为我刚刚开始:
// Creating the ActiveX Powerpoint control
var ppt;
try{
ppt = new ActiveXObject("Powerpoint.Application");
}catch(e){
if (e instanceof ReferenceError)
alert("Your browser might not be compatible with this function. Please use Internet Explorer.");
else
alert("An error happened: " + e);
}
console.log("ActiveX Object created");
// Openning Powerpoint, make it visible
ppt.Visible = 1;
// Creating a new Presentation, and adding a blank (1 slide, 1 = ppLayoutBlank) Slide
ppt.Presentations.Add();
ppt.ActivePresentation.Slides.Add(1, 1);
在我的计算机上,即使我允许它通过"An ActiveX control on this page might be dangerous; Do you allow it to execute?"
执行(直接从法语导出),ActiveX控件也不会启动Powerpoint。
但是,如果我启动了Developper Console,它会神奇地运行。而且,在另一台使用IE 11的计算机上,在我允许ActiveX控件执行后,它工作正常。
我认为我的IE安全设置是正确的,因此我想不出任何其他IE浏览器我不知道的故障。我正在使用64位的IE 9.0.8112.16421。
我怎样才能让这段代码运行良好?提前谢谢!
答案 0 :(得分:3)
提醒:IE中的console.log
仅在开发者控制台打开时才有效。
如果开发者控制台已关闭,则会停止脚本,因为console
为undefined
。
在您的代码中,尝试更改:
console.log("ActiveX Object created");
与
try{console.log("ActiveX Object created")}catch(err){}
或使用以下内容对该行进行评论://
。