現象

ActiveX コントロールのイベントを JavaScript で <オブジェクト名>::<イベント名> で定義した場合、Internet Explorer 9 および Internet Explorer 10 での ActiveX コントロールの参照カウント管理に問題があり、メモリリークやクラッシュなど予期しない問題が発生することがあります。

以下は一例です。
UserControl1 が ActiveX コントロール、ButtonClick がイベント名です。

<script type="text/javascript"> 
function UserControl1::ButtonClick(){
alert("TEST");
}
</script>



原因

ActiveX コントロールの参照カウンタを IE が適切に開放しないことが原因です。

回避策

イベントを以下のような別な文法で定義することで回避できます。

<script type="text/javascript" for="UserControl1" event="ButtonClick()"> 
alert("TEST");
</script>

状況

本現象は Internet Explorer 9 および Internet Explorer 10 の問題です。


本現象でどのように問題が表面化するかは、ActiveX コントロールの実装や使用しているランタイムによって様々です。参照カウンタが残った状態であるため、ActiveX コントロールを使用していないページに遷移した場合でも、メモリ上に ActiveX コントロールが保持されたままとなる可能性があります。

弊社では、Visual Basic 6.0 で作成された ActiveX コントロールを使用時、ウインドウクローズ時に Access Violation が発生する現象を確認しています。

ヘルプを表示

スキルを磨く
トレーニングの探索
新機能を最初に入手
Microsoft Insider に参加する

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?

ご意見をいただきありがとうございます。

×