0

WMPプレーヤーオブジェクトがあり、プレーヤーに送信されるScriptCommandsをインターセプトするイベントリスナーを追加しようとしています。WMPオブジェクトにアタッチされる代わりに、コールバックがすぐに呼び出され、ScriptCommandsがインターセプトされません。

function init() {
      var WMPlayer = document.getElementById("WMPlayer");
      WMPlayer.addEventListener("ScriptCommand", MyScriptCommand(), false);
  alert('init');
  }

  function MyScriptCommand() {
      alert('script');
  }

これを実行すると、initアラートの前にスクリプトアラートが表示されます。これが発生する理由を誰かが知っていますか?

4

1 に答える 1

2
WMPlayer.addEventListener("ScriptCommand", MyScriptCommand(), false);

する必要があります

WMPlayer.addEventListener("ScriptCommand", MyScriptCommand, false);

括弧なし。括弧を使用すると、実際の関数への参照ではなく、関数を呼び出してその戻り値をリスナーとして渡します。

于 2009-07-09T19:01:46.753 に答える