ページに 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');
しかし運がない。
アップデート
式document.getElementById('activexControlID').MethodName(2) = 'value string';
は値を返すことを想定していません。セッターのように機能します。結局、コードで後で取得var value = document.getElementById('activexControlID').MethodName(2);
できます。また、IE9 で値を取得できます。しかし、それを設定することはできません。
ActiveX コントロール内でどのように実装されているかはわかりませんが、 []の代わりに()を使用するだけで、配列に似ています。また、以前のバージョンの IE でも動作します。
更新 2
IE9のバグのようです。希望は固定されます。