Я создаю небольшое веб-приложение, которому необходимо получить доступ к Powerpoint через ActiveX и Javascript (и IE9 ...), чтобы автоматически создавать отчет. Я использую ActiveX, потому что я не могу создать файл Powerpoint на стороне сервера (хотя я бы предпочел это очень).ActiveX работает только при активации IE 9
Мой код прямо сейчас очень голые кости, как я только начинал:
// 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);
На моем компьютере, это происходит, что элемент управления ActiveX не запускается Powerpoint, даже если я позволю ему выполнить через "An ActiveX control on this page might be dangerous; Do you allow it to execute?"
(получена непосредственно с французского языка).
Но, если я запустил Консоль разработчика, она волшебным образом запускается. И, на другом компьютере с IE 11, он отлично работает после того, как я позволил элементу управления ActiveX выполнить.
Я думаю, что мои настройки безопасности IE правильные, поэтому я не могу думать ни о чем другом, что ошибка IE, о которой я не знаю. Я работаю с IE 9.0.8112.16421 64-бит.
Как я могу получить этот код, чтобы работать хорошо? Спасибо заранее!
'console.log' в IE работает только в том случае, если консоль разработчика открыта ... если консоль разработчика закрыта, она останавливает скрипт, потому что консоль' undefined'. Попробуйте изменить 'console.log (« созданный объект ActiveX »);' in 'try {console.log (« Создан объект ActiveX »)} catch (err) {}'. – Frogmouth
Или просто измените его на 'alert (« Созданный объект ActiveX »);' – ToastyMallows
Wow ... Хорошо сыграл IE, хорошо сыграл! Я на самом деле кратко из этого, но никогда бы не подумал, что это проблема! Он отлично работает с 'try catch', я буду придерживаться этого! @Frogmouth Если бы вы могли разместить это как ответ, так что я могу принять его ... Спасибо вам за молниеносный ответ! –