javascript YouTubeplyer OnStateChange未触发
我对youtube播放器不开火有意见。我看过其他帖子,它们不太适合我的情况,因为我可能正在使用不同的(无铬javascript)版本 HTML: 我基本上复制了文档中的示例。那我就这么做javascript YouTubeplyer OnStateChange未触发,javascript,youtube-api,youtube-javascript-api,Javascript,Youtube Api,Youtube Javascript Api,我对youtube播放器不开火有意见。我看过其他帖子,它们不太适合我的情况,因为我可能正在使用不同的(无铬javascript)版本 HTML: 我基本上复制了文档中的示例。那我就这么做 var player = document.getElementById('player'); 我可以让它正常工作。但唯一的问题是,当它更改状态时,OnStateChange事件不会触发。代码是这样的 document.getElementById('player').addEventListener('On
var player = document.getElementById('player');
我可以让它正常工作。但唯一的问题是,当它更改状态时,OnStateChange事件不会触发。代码是这样的
document.getElementById('player').addEventListener('OnStateChange',
function(new_state){
console.log(new_state);
}
)
新的州从未打印出来。我做错了吗 这个例子对我很有用
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
<body>
<div id="ytapiplayer">
You need Flash player 8+ and JavaScript enabled to view this video.
</div>
<script type="text/javascript">
var params = { allowScriptAccess: "always" };
var atts = { id: "myytplayer" };
swfobject.embedSWF("http://www.youtube.com/v/Bl4Qne-RpcM?enablejsapi=1&playerapiid=myytplayer&version=3",
"ytapiplayer", "425", "356", "8", null, null, params, atts);
function onYouTubePlayerReady(playerId) {
ytplayer = document.getElementById("myytplayer");
ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
}
function onytplayerStateChange(newState) {
alert("Player's new state: " + newState);
}
</script>
</body>
您需要启用Flash player 8+和JavaScript才能查看此视频。
var params={allowScriptAccess:“始终”};
var atts={id:“myytplayer”};
swfobject.embeddeswf(“http://www.youtube.com/v/Bl4Qne-RpcM?enablejsapi=1&playerapiid=myytplayer&version=3",
“ytapiplayer”、“425”、“356”、“8”、空、空、参数、atts);
函数onYouTubePlayerReady(playerId){
ytplayer=document.getElementById(“myytplayer”);
ytplayer.addEventListener(“onStateChange”、“onytplayerStateChange”);
}
函数onytplayerStateChange(newState){
警报(“玩家的新状态:+newState”);
}
没有getElementById('player')中使用的名为player(id=“ytapiplayer”)的元素,我认为javascript在“ytapiplayer”下嵌入了一个对象(id=“player”,具体在atts中)。我可以调用该对象上的所有方法(id=“player”),但OnStateChange从未被触发。你可能是对的。添加一些可以运行的代码?我在JSFIDLE上放了一些代码。但是视频没有加载。我认为JSFIDLE可能会禁止它。我将在回答中给出一个工作示例。哦,这就是该函数的用法。令人惊叹的。
document.getElementById('player').addEventListener('OnStateChange',
function(new_state){
console.log(new_state);
}
)
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
<body>
<div id="ytapiplayer">
You need Flash player 8+ and JavaScript enabled to view this video.
</div>
<script type="text/javascript">
var params = { allowScriptAccess: "always" };
var atts = { id: "myytplayer" };
swfobject.embedSWF("http://www.youtube.com/v/Bl4Qne-RpcM?enablejsapi=1&playerapiid=myytplayer&version=3",
"ytapiplayer", "425", "356", "8", null, null, params, atts);
function onYouTubePlayerReady(playerId) {
ytplayer = document.getElementById("myytplayer");
ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
}
function onytplayerStateChange(newState) {
alert("Player's new state: " + newState);
}
</script>
</body>