从YouTube取代url来embedded代码 – 错误:权限被拒绝访问属性'toString'

我有这个代码和FireBug中的这个错误:

错误:权限被拒绝访问属性'toString'

我该如何解决这个错误?

HTML:

<div class="yturl">http://www.youtube.com/watch?v=UNMLEZrukRU</div> 

JS:

 $("div.yturl").each(function(){ var regex = /(\?v=|\&v=|\/\d\/|\/embed\/|\/v\/|\.be\/)([a-zA-Z0-9\-\_]+)/; var youtubeurl = $(this).text(); var regexyoutubeurl = youtubeurl.match(regex); if (regexyoutubeurl) { $(this).html("<iframe width=\"390\" height=\"315\" src=\"http://www.youtube.com/embed/"+regexyoutubeurl[2]+"\" frameborder=\"0\" allowfullscreen></iframe>"); } }); 

演示: http : //jsfiddle.net/9e48p/

这个错误可以由Adobe的Flash Player团队或Google工程师解决 – 现在您应该忽略它。 它连接到Flash Player安全设置和embedded到Youtube页面的SWF文件。 IBM过去曾经报道过这个问题,还有一个Mozilla的Bugzilla入口 。

当我在Firefox 16.0.2中停用Flash Player时,错误消息消失。 检查评论#37: https : //bugzilla.mozilla.org/show_bug.cgi?id = 434522# c37

对于什么是值得的,我看到这个错误发生时, 任何 Flash文件,甚至没有任何动作调用(ExternalInterface等),根本就是加载到一个页面上的页面域和IFRAME域是不同的。 这意味着iframe问题是在事实上存在跨域情况时引起的。 但是,究竟是否真的试图成为一个应该被阻止和错误的跨域调用还不是很清楚。

因为没有什么是Flash SWF本身试图调用“Location.toString”,并没有什么关于做这个页面的JavaScript,唯一的select是有一些关于Flash插件本身(9.0.124是什么我正在testing),这是试图做出调用父/顶部窗口做Location.toString()。

当错误被标记为已解决时,附加的testing用例https://bug434522.bugzilla.mozilla.org/attachment.cgi?id=321956会在最新版本的Firefox中生成相同的错误消息(包括Firebug控制台或Firefox错误控制台窗口)。;

更新:
这个错误已经在Adobe提交给老bug数据库: FP-561“Location.toString”由于不正确的Flash插件行为 (您需要一个帐户来查看bug详细信息) 导致未捕获(安全)exception 。 当错误被closures时,最后的评论:

在Firefox 4和5上使用最新的Flash Player 10.3.181.34进行testing,没有发生此类exception。 所以错误可能已经修复了,对吧? 如果您仍遇到此问题,请在我们的新bug系统https://bugbase.adobe.com/中提交错误,并将新错误链接放入此原始JIRA报告中。; 我们很高兴在新的bug系统中跟进您的报告。

不要忽略这个错误,只是因为它不直接与你的代码相关。

它似乎发生在你的embedded最初隐藏。

只需将?html5=1添加到您的embeddedurl即可。 IE8仍然会采取闪存版本。 或者用Youtube API加载你的video。

您的Iframeurl构造函数可能有问题。 该错误正在加载到Iframe中的youtube脚本中引发。 与您的脚本不会dynamic添加的合并html iframe引发同样的错误

 <iframe width="390" height="315" src="http://www.youtube.com/embed/UNMLEZrukRU" frameborder="0" allowfullscreen></iframe> 

仅HTML版本演示http://jsfiddle.net/Lgt5f/

仔细检查url是不是缺less一个参数,否则我会检查youtube的支持资源

该问题可能是由不正常工作的扩展引起的。

启动火狐浏览器使用安全模式排查火狐问题,检查其中一个扩展名或者硬件加速是否导致问题(切换到DEFAULT主题:Firefox / Tools> Add-ons> Appearance / Themes)。

忽略这个错误,这与你的代码无关。 只是一个浏览器错误。