<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 の呼び出し方法に関連しているのでしょうか。