我正在使用 play() 函数播放嵌入的 youtube 视频。这都是使用 youtube api。下面是我的代码。它在 chrome 和 IE 中完美运行,但在 Firefox 中无法播放。
alert(typeof ytplayer);
这段代码显示了 ytplayer 是什么类型的“东西”。在 chrome 和 IE 中,它会出现 object(视频嵌入 object 方法)。在 Firefox 中,它说未定义,所以那里出了点问题。
我在这里有一个测试网站:http: //lostinawesome.blogspot.com.au/2012/04/test-post.html
单击播放按钮或图像播放 youtube 音频。在 Firefox 中,它可能不适合你。
有什么想法可以让它在 FF 中播放吗?
我的代码:
javascript:
function onYouTubePlayerReady(playerId) {
var player = document.getElementById("ytplayer");
player.addEventListener("onStateChange", "onytplayerStateChange");
}
function onytplayerStateChange(newState) {
alert("New state " + newState);
}
function play() {
alert(typeof ytplayer);
if (ytplayer) {
ytplayer.playVideo();
}
}
html:
<object data="http://www.youtube.com/v/u8C-ZTQJIkU?enablejsapi=1&playerapiid=ytplayer&version=3" height="400" id="ytplayer" type="application/x-shockwave-flash" width="550"><param name="allowScriptAccess" value="always">
<param name="movie" value="http://www.youtube.com/v/u8C-ZTQJIkU?enablejsapi=1&playerapiid=ytplayer&version=3" >
</param>
<param name="allowScriptAccess" value="always">
</param>
</object>
<a href="javascript:void(0);" onclick="play();">Play</a>
工作代码:
我只需要更改为 var ytplayer = document.getElementById("ytplayer"); 因为 ytplayer 没有在任何地方声明为变量,但由于某种原因,它无论如何都可以在 chrome 和 IE 中使用。
function play() {
var ytplayer = document.getElementById("ytplayer");
alert(typeof ytplayer);
if (ytplayer) {
ytplayer.playVideo();
}
}