的引号
我有一些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的调用方式有关。
由于addEventListener方法实际上是在flash播放器中公开的方法,而不是本机addEventListen,因此它实际上取决于YTPlayer中AS3代码的实现。
我会使用文档并使用