Youtube Unsafe JavaScript 尝试使用 URL 访问框架

Posted

技术标签:

【中文标题】Youtube Unsafe JavaScript 尝试使用 URL 访问框架【英文标题】:Youtube Unsafe JavaScript attempt to access frame with URL 【发布时间】:2012-08-07 18:58:54 【问题描述】:

我还有另一个问题,这次是关于 youtube API。 我正在使用此代码获取 youtube 播放器:

<div id=\"youtubeVideoContainer\"></div><script type=\"text/javascript\">
                        //Load player api asynchronously.
                        var tag = document.createElement('script');
                        tag.src = \"//www.youtube.com/player_api\";
                        var firstScriptTag = document.getElementsByTagName('script')[0];
                        firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

                        var player;
                        function onYouTubePlayerAPIReady() 
                            player = new YT.Player('youtubeVideoContainer', 
                              height        : \"".$height."\",
                              width         : \"".$width."\",
                              videoId       : \"".$id."\",
                              playerVars    : ".json_encode($this->playerParams)."
                            );
                        
                    </script>

请不要介意\",它是用php渲染的,所以它只是为了转义,而且视频正在播放,所以没有大错误:)

让我烦恼的是,每次我请求视频时,我都会在控制台中看到以下消息: 不安全的 JavaScript 尝试使用 URL 访问框架

https://www.socialthisday.com/playwin/admin/content/edit/project_1/home.html 从带有 URL 的框架 https://www.youtube.com/embed/2UJH9dCtp7w?autohide=1&autoplay=1&controls=0&border&cc_load_policy=0&color&color1&color2&disablekb&enablejsapi=1&egm&fs&hd&iv_load_policy&loop&modestbranding=1&origin=https%3A%2F%2Fwww.socialthisday.com&playerapiid&playlist&rel=0&showinfo=0&showsearch&start&theme&version=3。 域、协议和端口必须匹配。

我想解决这个问题,所以我看不到该消息。我知道这并不是一件大事,但我现在想知道如何在我的网站上获得一个 youtube 播放器而不会看到上面的警告。

希望大家能帮帮我!

编辑: 这是输出:

<div id="YTcontainer_502513c7ebc1b">&nbsp;</div>
                        <script type="text/javascript">
                            //Load player api asynchronously.
                            var tag = document.createElement('script');
                            tag.src = "//www.youtube.com/iframe_api";
                            var firstScriptTag = document.getElementsByTagName('script')[0];
                            firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

                            var YTplayer_502513c7eb834;                                                        
                            window.onYouTubeIframeAPIReady = function() 
                                YTplayer_502513c7eb834   = new YT.Player("YTcontainer_502513c7ebc1b", 
                                  height        : "200",
                                  width         : "200",
                                  videoId       : "2UJH9dCtp7w",
                                  playerVars    : "autohide":1,"autoplay":1,"controls":0,"border":"","cc_load_policy":0,"color":"","color1":"","color2":"","disablekb":"","enablejsapi":"","egm":"","fs":"","hd":"","iv_load_policy":"","loop":"","modestbranding":1,"origin":"","playerapiid":"","playlist":"","rel":0,"showinfo":0,"showsearch":"","start":"","theme":"","version":3,"wmode":"opaque"
                                );
                            

                            if(window.YT)
                                onYouTubeIframeAPIReady();
                            
                        </script>

【问题讨论】:

请不要介意 \",它是用 PHP 渲染的,所以它只是为了转义 - 所以给我们看看 输出 PHP. 是的,这很烦人。我对此没有其他解释,但 youtube 正在尝试跨域窗口访问漏洞,以防有人使用允许它们的浏览器。它发生在任何带有 youtube 嵌入视频的页面上...... 昆汀,我已经为你添加了输出 【参考方案1】:

根本问题是http://code.google.com/p/chromium/issues/detail?id=17325

一旦解决了这个问题,使用 YouTube iframe 嵌入的页面上的 JavaScript 控制台中的警告应该会消失 - 当然对于 Chrome,我相信对于 Safari 也是如此。

【讨论】:

您链接到的那个 bug 详细信息自 2009 年以来一直处于活动状态。看起来 Google Chromeboys 在优先级列表附近没有任何地方。【参考方案2】:

勾选“使用旧嵌入代码”

它将使用&lt;object&gt;标签嵌入视频

【讨论】:

以上是关于Youtube Unsafe JavaScript 尝试使用 URL 访问框架的主要内容,如果未能解决你的问题,请参考以下文章

使用JavaScript控制实际YouTube网站上的YouTube视频

javascript 使用YouTube API的响应式YouTube视频背景

Javascript - 检测 Youtube 默认缩略图

javascript Javascript YouTube视频播放器(多个)

用 JavaScript 或 jQuery 监听 Youtube 事件

用 JavaScript 或 jQuery 监听 Youtube 事件