javascript - Youtube Iframe : onYouTubePlayerAPIReady() not called

标签 javascript iframe youtube youtube-api

我有一个带有 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/

相关文章:

javascript - $.fn.submit() 事件不会在 &lt;iframe&gt; 中触发

javascript - iframe 中的 Jplayer 控件

iframe - 动态更新网站上的youtube播放列表

javascript - 如何在 asp.net 中捆绑 js 文件?

javascript - 如何防止触发传入 javascript 函数的回调

javascript - 如何压缩更多的jquery文件?

Web 应用程序中 Javascript 绑定(bind)的用户交互元素 : a or button?

javascript - 在 iframe 顶部跟踪滑动

swift - 无法在 tvOS 中播放 YouTube 视频。得到一个 "Operation requires a client data source to have been registered"

javascript - Youtube 嵌入开始时间错误 &lt;iframe&gt;<javascript>