YouTubeビデオをロードするiframeを含むページがあります(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
}
});
}
}
しかし、2 番目のアラート (「called onYouTubePlayerAPIReady」) が呼び出されることはなく、Chrome console.log にはwww-embed_core_module-vflNmuGQq.js:26からの次のエラー メッセージが表示されます。
安全でない JavaScriptが、URL http://www.youtube.com/embed/nOEw9iiopwI?enablejsapi=1のフレームから URL http://mysite.comのフレームにアクセスしようとしています。ドメイン、プロトコル、およびポートが一致する必要があります。
何か案は?