正确使用element.addEventListener的方法

时间:2012-01-16 06:26:13

标签: javascript youtube-api youtube-javascript-api

我有一些JavaScript函数,它们作为触发自定义事件的<object/>对象的事件侦听器。相关对象是支持JavaScript API的YouTube播放器。 documentation提供了用于附加事件侦听器的示例代码:

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的方式有关。

1 个答案:

答案 0 :(得分:3)

由于addEventListener方法实际上是在flash播放器中公开的方法而不是本机addEventListener,因此它实际上取决于YTPlayer中AS3代码的实现。

我会使用文档并使用引号