3

ページに 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のバグのようです。希望は固定されます。

4

1 に答える 1

1

バグが修正され、コードが修正されました

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

IE9RC1で動作するようになりました。

于 2011-02-23T17:09:59.407 に答える