2011-01-26 81 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で動作します。

UPDATE 2

はIE9でbugように見えます。希望は修正される予定です。

+0

'.MethodName(2)'は何を返すと思いますか? – Tomalak

+3

IE9でActiveXコントロールを使用しないでください。 IE9は、実際のWebアプリケーションを使用するのに十分なクロスブラウザです。 – Raynos

+0

コントロールは中または高セキュリティで実行されますか?スクリプトをActiveXコントロールに対して無効にすることができます。設定を確認...;) –

答えて

1

バグが固定されており、コード

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

は現在、IE9のRC1で動作しました。

関連する問題