Ash*_*ams 16 javascript swfobject youtube-api
根据我的阅读,我应该如何设置YouTube API:
<!DOCTYPE html>
<html lang="en">
<head>
<meta content='text/html;charset=UTF-8' http-equiv='content-type' />
<title>Youtube Player</title>
<script src="jquery.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js" type="text/javascript"></script>
<script type="text/javascript" charset="utf-8">
function onYouTubePlayerReady(id) {
console.log("onYouTubePlayerReady() Fired!");
var player = $("#youtube_player").get(0);
}
var params = { allowScriptAccess: "always" };
var atts = { id: "youtube_player" };
swfobject.embedSWF("http://www.youtube.com/apiplayer?enablejsapi=1",
"youtube", "425", "356", "8", null, null, params, atts);
</script>
</head>
<body>
<div id="youtube"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
但是,'onYouTubePlayerReady()'根本不会触发,如果我手动获取对播放器的引用,则很多方法都是未定义的; 例如,cueVideoById()可以工作,但playVideo()不能.
我该如何解决这个问题?
小智 5
这个功能:
function onYouTubePlayerReady(playerid) {
console.log('readyIn');
};
Run Code Online (Sandbox Code Playgroud)
不必直接在单独的脚本标记中.
只有你必须遵守的规则是:不要将此函数放在domready事件中 - 必须尽快定义它.
例如在mootools我使用它像这样:
function onYouTubePlayerReady(playerid) {
echo('readyIn');
};
document.addEvent('domready', function() {
...
});
Run Code Online (Sandbox Code Playgroud)