2011-01-26 7 views
3

페이지에 ActiveX 컨트롤이 있습니다. 일반적으로, 메소드를 호출하는 나는 이런 식으로 뭔가를 사용IE9의 JavaScript에서 ActiveX 메서드 호출

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의 이전 버전에서 작동합니다.

업데이트 2

는 IE9에서 bug처럼 보인다. 희망은 고쳐질 것입니다.

+0

'.MethodName (2)'이 (가) 반환해야하는 것은 무엇입니까? – Tomalak

+3

IE9에서 activeX 컨트롤을 사용하지 마십시오. IE9는 실제 웹 응용 프로그램을 사용할 수있는 브라우저 간 호환성을 제공합니다. – Raynos

+0

컨트롤이 보통 또는 높은 보안으로 실행됩니까? 스크립팅은 ActiveX 컨트롤에 대해 비활성화 할 수 있습니다. 설정 확인 ...;) –

답변

1

버그가 수정하고 코드

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

이제 IE9의 RC1에서 작동했다.