我有一个带有 iframe 的页面,它加载了一个 youtube 视频(iframe 的 src 在运行时被修改)。 我基于 Rob W 在有关此主题的不同答案中提供的代码
<iframe id="browser" class="browser" scrolling="no" name="navigation"
src="http://www.youtube.com/embed/nOEw9iiopwI?enablejsapi=1" application="youtube" style="display:
inline;"></iframe>
然后,当加载 iframe 时,将执行以下代码:
$('.browser').load(function() {
dispose_ytplayer();
});
调用的函数 dispose_ytplayer() 是:
function dispose_ytplayer() {
(function(){
var s = document.createElement("script");
s.src = "http://www.youtube.com/player_api";
var before = document.getElementsByTagName("script")[0];
before.parentNode.insertBefore(s, before);
})();
alert('called yt_dispose');
var ytIframeplayer;
function onYouTubePlayerAPIReady() {
alert('called onYouTubePlayerAPIReady');
ytIframeplayer = new YT.Player('browser', {
events: {
"onStateChange": stopCycle
}
});
}
}
但从未调用第二个警报(“称为 onYouTubePlayerAPIReady”),我的 chrome console.log 显示来自 www-embed_core_module-vflNmuGQq.js:26 的错误消息:
不安全的 JavaScript 尝试使用 URL http://mysite.com 访问框架来自带有 URL 的框架 http://www.youtube.com/embed/nOEw9iiopwI?enablejsapi=1 .域、协议(protocol)和端口必须匹配。
有什么想法吗?
最佳答案
onYouTubePlayerAPIReady
应该在 window
对象上。
尝试:
window.onYouTubePlayerAPIReady = function() {
alert('called onYouTubePlayerAPIReady');
ytIframeplayer = new YT.Player('browser', {
events: {
"onStateChange": stopCycle
}
});
}
关于javascript - Youtube Iframe : onYouTubePlayerAPIReady() not called,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14303795/