У меня есть элемент управления ActiveX на странице. Обычно, чтобы назвать его методы я использую что-то вроде этого:Вызов метода ActiveX из JavaScript в IE9
document.getElementById('activexControlID').MethodName(2) = 'value string';
Я знаю, что это может выглядеть странно, но он отлично работает в IE6, IE7, IE8. К сожалению, он не работает в IE9. Он выдает ошибку «Невозможно назначить результат функции».
Я уже пробовал:
document.getElementById('activexControlID').MethodName[2] = 'value string';
// and
document.getElementById('activexControlID').MethodName(2, 'value string');
, но не повезло.
UPDATE
Выражение document.getElementById('activexControlID').MethodName(2) = 'value string';
не предполагают, чтобы вернуть значение. Он действует как сеттер. В конце концов, я могу получить его позже с кодом var value = document.getElementById('activexControlID').MethodName(2);
И я могу получить значение в IE9. Но он не может его установить.
Я не знаю, как это реализовано в элементе управления ActiveX, но он похож на массив, просто использует () вместо []. И еще раз, он работает в предыдущих версиях IE.
UPDATE 2
Похоже bug в IE9. Надежда будет исправлена.
Что означает '.MethodName (2)' предполагается вернуться? – Tomalak
Не используйте элементы управления ActiveX в IE9. IE9 совместим с несколькими браузерами, чтобы использовать настоящие веб-приложения. – Raynos
Управляет ли управление средним или высоким уровнем безопасности? Сценарии можно отключить, а затем - элементы управления ActiveX. Проверьте свои настройки ...;) –