3

我有一些 JavaScript 函数,它们充当<object/>触发自定义事件的对象的事件侦听器。有问题的对象是启用了 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 方法实际上是 flash player 中暴露的方法,而不是原生 addEventListener,所以它确实取决于 YTPlayer 内部 AS3 代码的实现。

我会使用文档并使用引号

于 2012-01-16T07:23:11.080 回答