Geo*_*old 55 javascript youtube iframe wicket
我们有一个Wicket应用程序,其中包含一个包含嵌入式Youtube视频的页面.视频嵌入并播放正常,但显然它会导致页面的其余部分无法呈现 - 看起来嵌入后的DOM元素似乎不会显示在页面上,尽管它在标记中.
查看Chrome中的错误控制台会显示:
不安全的JavaScript尝试使用网址http://yample.com/detail/COMMUNICATION/search/com-sonyericsson-hanashi 从URL http://www.youtube.com/embed/eJY7_De5opI?enablejsapi=1&autohide=1&showinfo访问框架 = 1.域,协议和端口必须匹配.
我用Google搜索了相当数量,人们似乎在说这是无害的并且无视它.这似乎是错的,在我们的例子中,它实际上打破了页面.
如果我们更改我们的应用程序以便通过ajax回调动态嵌入视频(用户单击Wicket AjaxLink),我们仍然会在控制台中收到错误,但至少页面会完全呈现.不幸的是,这对我们不起作用,因为我们需要在用户第一次点击页面时默认加载视频.
编辑:我应该补充一点,虽然错误消息来自Chrome控制台,但该错误似乎影响了我尝试过的每个浏览器:Chrome,Safari和Firefox.
And*_*oso 24
安全错误不太可能破坏您的页面.看起来错误发生在YouTube框架内,这意味着在最坏的情况下,框架的内容将被搞砸.
在任何情况下,来自外部页面的框架/ iframe都不能影响父文档的内容,除非它们来自相同的域和端口号.这是浏览器安全的硬规则之一.
错误必须在您的标记中的其他位置.有没有机会看到一些示例标记?
[编辑]
错误也可能出现在嵌入代码标记中.或者,如果任何脚本标签直接包含在页面上(而不是iframe中),它可能就在那里.
通常当这样的问题发生时,由于某个地方有一个未封闭的标签,但它也可能是Javascript.
小智 7
如果您在解决该JavaScript错误时遇到问题,可以尝试使用YouTube的旧嵌入代码.点击嵌入后,每个YouTube视频都可以选择此选项.您不会遇到该错误,因为它不使用iframe.代码看起来像这样:
<object width="560" height="315">
<param name="movie" value="http://www.youtube.com/v/9DXL9vIUbWg?version=3&hl=en_US&rel=0"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/9DXL9vIUbWg?version=3&hl=en_US&rel=0" type="application/x-shockwave-flash" width="560" height="315" allowscriptaccess="always" allowfullscreen="true"></embed>
</object>
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
小智 5
我投票支持Jonathan Torres的回答,因为他的代码停止了Javascript警告.但是,当我验证代码时,我发现了错误.
所以我的回答是......
使用YouTube的嵌入代码时勾选"使用旧嵌入代码"复选框,这样您就不会使用iframe.
要使代码验证,您需要添加....
type="movie"
Run Code Online (Sandbox Code Playgroud)
和
data="http://SAME YOUTUBE URL USED IN THE FIRST PARAM ELEMENT/"
Run Code Online (Sandbox Code Playgroud)
到OBJECT元素.然后使PARAM元素自动关闭(但不是EMBED元素).
这应该会使您的YouTube代码看起来像这样......
<object width="560" height="315" type="movie" data="http://www.youtube.com/v/9DXL9vIUbWg?version=3&hl=en_US&rel=0">
<param name="movie" value="http://www.youtube.com/v/9DXL9vIUbWg?version=3&hl=en_US&rel=0"></param><param name="allowFullScreen" value="true" />
<param name="allowscriptaccess" value="always" />
<embed src="http://www.youtube.com/v/9DXL9vIUbWg?version=3&hl=en_US&rel=0" type="application/x-shockwave-flash" width="560" height="315" allowscriptaccess="always" allowfullscreen="true"></embed>
</object>
Run Code Online (Sandbox Code Playgroud)
然后,您应该不会收到Javascript警告,并且您的代码应该验证.
| 归档时间: |
|
| 查看次数: |
60473 次 |
| 最近记录: |