【发布时间】:2011-09-28 12:09:55
【问题描述】:
我正在开展一个项目,该项目允许最终用户在自己的 HTML 页面中嵌入 Flash,而我们提供不同的方式,以便用户可以选择适合他们情况的方式,例如,大多数博客不欢迎用户在他们的页面上注入 JavaScript,因此 SWFObject 是不可能的,我们提供了另外两种方法:IFrame 和老式但很好的 Object/Embed 对。就像旧的 Youtube 嵌入代码一样:
<object width="560" height="349">
<param name="movie" value="http://www.youtube.com/v/rgyL08nhtkw?version=3&hl=zh_TW"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/rgyL08nhtkw?version=3&hl=zh_TW" type="application/x-shockwave-flash" width="560" height="349" allowscriptaccess="always" allowfullscreen="true"></embed>
</object>
不知何故,新的 IE9 将上面的标签变成了这样:
<object width="560" height="349" althtml="<embed src="http://www.youtube.com/v/rgyL08nhtkw?version=3&hl=zh_TW" type="application/x-shockwave-flash" width="560" height="349" allowscriptaccess="always" allowfullscreen="true"></embed>">
<param name="movie" value="http://www.youtube.com/v/rgyL08nhtkw?version=3&hl=zh_TW"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
</object>
如您所见,IE9 将嵌入部分放入对象标记中名为“althtml”的属性中,而引号破坏了语法,“althtml”之后的所有 flashvars 和 params 都不再起作用了。
我想知道有没有办法阻止 IE9 这样做?只使用对象而不单独使用嵌入是否安全?
【问题讨论】:
标签: flash object embed internet-explorer-9