2011-01-26 2 views
3

У меня есть элемент управления 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. Надежда будет исправлена.

+0

Что означает '.MethodName (2)' предполагается вернуться? – Tomalak

+3

Не используйте элементы управления ActiveX в IE9. IE9 совместим с несколькими браузерами, чтобы использовать настоящие веб-приложения. – Raynos

+0

Управляет ли управление средним или высоким уровнем безопасности? Сценарии можно отключить, а затем - элементы управления ActiveX. Проверьте свои настройки ...;) –

ответ

1

ошибка была исправлена, и код

document.getElementById('activexControlID').MethodName(2) = 'some value'; 

теперь работает в RC1 IE9.

 Смежные вопросы

  • Нет связанных вопросов^_^