Youtube Iframe:未调用 onYouTubePlayerAPIReady()

2024-03-29

我有一个带有 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 http://mysite.com来自带有 URL 的框架http://www.youtube.com/embed/nOEw9iiopwI?enablejsapi=1 http://www.youtube.com/embed/nOEw9iiopwI?enablejsapi=1。域、协议和端口必须匹配。

有任何想法吗?


onYouTubePlayerAPIReady应该在window object.

try:

window.onYouTubePlayerAPIReady = function() {
        alert('called onYouTubePlayerAPIReady');
        ytIframeplayer = new YT.Player('browser', {
             events: {
                "onStateChange": stopCycle
             }
    });
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Youtube Iframe:未调用 onYouTubePlayerAPIReady() 的相关文章

随机推荐