我有一个 YouTube Javscript API 的实现,它在 Chrome 和 Safari 中运行良好,但在 Firefox 中却不行。是的,我在网络服务器上执行此操作;)
准备好文档后,我调用我的函数 showVideo();
这是所有相关代码:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
<div id="ytplayer" class="youtubepromovideo"></div>
<script type="text/javascript">
function showVideo(){
var params = { allowScriptAccess: "always" };
swfobject.embedSWF("http://www.youtube.com/apiplayer?enablejsapi=1&playerapiid=ytplayer", "ytplayer", "400", "400", "8", null, null, params);
}
function onYouTubePlayerReady(playerId) {
console.log("player ready: "+playerId);
loadNewVideo();
}
function loadNewVideo() {
var id = 'jc8n44ddy9A';
var startSeconds = 0;
console.log("loading video");
ytplayer.loadVideoById(id, startSeconds);
}
</script>
在所有浏览器中播放器都会显示,但在 Firefox 中视频不会加载。我的日志在 Firefox 上显示“正在加载视频”消息,但之后没有其他任何事情发生。甚至没有错误。ytplayer.loadVideoById('jc8n44ddy9A', 0);
如果我在加载所有内容后尝试手动调用,则会收到错误消息ReferenceError: ytplayer is not defined
。
我意识到 ytplayer 并没有被我明确定义为变量,但我的猜测(?)是 YouTube API 这样做是因为它可以在其他浏览器中使用。此外,如果我只是var ytplayer
在某个地方全局定义它并不能解决它。
任何建议都非常感谢!