私はページ上に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ように見えます。希望は修正される予定です。
'.MethodName(2)'は何を返すと思いますか? – Tomalak
IE9でActiveXコントロールを使用しないでください。 IE9は、実際のWebアプリケーションを使用するのに十分なクロスブラウザです。 – Raynos
コントロールは中または高セキュリティで実行されますか?スクリプトをActiveXコントロールに対して無効にすることができます。設定を確認...;) –