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"> </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】:勾选“使用旧嵌入代码”
它将使用<object>
标签嵌入视频
【讨论】:
以上是关于Youtube Unsafe JavaScript 尝试使用 URL 访问框架的主要内容,如果未能解决你的问题,请参考以下文章
使用JavaScript控制实际YouTube网站上的YouTube视频
javascript 使用YouTube API的响应式YouTube视频背景
javascript Javascript YouTube视频播放器(多个)