复制步骤:
sMqNFAU0tOw
(或任何Youtube视频ID)Uncaught TypeError: undefined is not a function
它来自这部分代码,我尝试使用Google的JavaScript Youtube API连续播放Youtube视频:
var atts = { id: "myytplayer" };
var params = { allowScriptAccess: "always" };
swfobject.embedSWF(thisurl, "playerdiv", "425", "356", "8", null, null, params, atts);
var ytplayer = document.getElementById("myytplayer");
ytplayer.playVideo(); // <----- problem line
}
(API参考:https://developers.google.com/youtube/js_api_reference)
我认为可能是因为,当调用playVideo
时,元素myytplayer
仍然是通过函数swfobject.embedSWF
创建的?这是问题吗?
答案 0 :(得分:0)
是的,这就是问题所在。如果尝试调试脚本并逐步进行,您将看到代码正常工作。但是没有它,你正试图获得仍在创建的对象。
embedSWF
需要另外一个可选参数 - callbackFn
,在页面上创建Flash插件成功或失败时调用(SWFObject 2.2 +)({{3 }})。尝试将代码放入获取元素,然后在此类方法中播放视频。