3

<object/>カスタム イベントを発生させるオブジェクトのイベント リスナーとして動作する JavaScript 関数がいくつかあります。問題のオブジェクトは、JavaScript API 対応の YouTube プレーヤーです。ドキュメントには、イベント リスナーをアタッチするための次のサンプル コードが記載されています。

function onYouTubePlayerReady(playerId) {
  ytplayer = document.getElementById("myytplayer");
  ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
  // note: quotes used ----------------------^---------------------^
  // note: callback function defined in an arbitrary location
}
function onytplayerStateChange(newState) {
   alert("Player's new state: " + newState);
}

ただし、他のaddEventListener場所で見た例によると、引用符の使用は推奨されていません。

function onytplayerStateChange(newState) {
   alert("Player's new state: " + newState);
}
function onYouTubePlayerReady(playerId) {
  ytplayer = document.getElementById("myytplayer");
  // note: callback function defined EARLIER
  ytplayer.addEventListener("onStateChange", onytplayerStateChange);
}

では、どの方法が正しいのでしょうか?最初のものはすべてのブラウザーで動作するように見えましたが、最近奇妙な問題に気付きました。それらの問題は addEventListener の呼び出し方法に関連しているのでしょうか。

4

1 に答える 1

3

addEventListener メソッドは実際にはネイティブの addEventListener ではなく、Flash Player で公開されるメソッドであるため、実際には YTPlayer 内の AS3 コードの実装に依存します。

私はドキュメンテーションに行き、引用符を使用します

于 2012-01-16T07:23:11.080 に答える