【发布时间】:2010-07-23 05:27:40
【问题描述】:
您好,在 HTML 中放置了以下 flash 对象,flash 似乎在 Firefox、Chrome、Safari 中渲染良好,但在任何版本的 IE 中都没有!!!
谁能告诉我这个对象有什么问题,或者我特别为 IE 错过了什么!!
提前致谢, 天美
【问题讨论】:
标签: html flash internet-explorer firefox
您好,在 HTML 中放置了以下 flash 对象,flash 似乎在 Firefox、Chrome、Safari 中渲染良好,但在任何版本的 IE 中都没有!!!
谁能告诉我这个对象有什么问题,或者我特别为 IE 错过了什么!!
提前致谢, 天美
【问题讨论】:
标签: html flash internet-explorer firefox
使用 SWFObject 嵌入 Flash 元素,它将解决您所有的跨浏览器问题。
【讨论】:
我相信您需要 movie 参数。这对我有用:
<!doctype html>
<object data="http://jquery.thewikies.com/swfobject/fireworks.swf" width="440" height="550" name="demoLaunch" id="demoLaunch" type="application/x-shockwave-flash">
<param value="true" name="democonnect">
<param value="always" name="allowscriptaccess">
<param value="transparent" name="wmode">
<param value="demo1=1&demo2=3&demo3=12&demo4=19" name="flashvars">
<param name="movie" value="http://jquery.thewikies.com/swfobject/fireworks.swf">
</object>
为了这个目的,除了跨浏览器的JS之外,最好依靠Javascript来控制no flash fallbacks。我会推荐 jquery swfobject。
【讨论】:
您是否尝试过验证您的 HTML 和 CSS?您几乎可以肯定在某处存在编码错误,这将帮助您找到它。 http://validator.w3.org/
【讨论】:
实际上,这里的问题是您使用的是 W3C 有效的 HTML,而 IE 倾向于不兼容。要让 IE 嵌入 flash 内容,您需要使用 embed,它与 object 完全相同,但不是 W3C 标准的一部分。
embed标签的语法如下:
<embed src="somefilename.swf" width="550" height="400"></embed>
这通常只是放置在对象标签内,因此两个选项都在页面上(不用担心,它不会在理解您已经拥有的对象标签的浏览器中呈现两次)。
绕过使用非标准 HTML 的一种常见方法是使用 Javascript 进行嵌入,它会将非标准 HTML 代码写入浏览器,但要等到页面呈现之后。这允许页面通过 W3C HTML 验证器,并且仍然可以跨平台工作。执行此操作的最佳 javascript 库通常是 SWFObject,它允许您只包含一次 flash 内容,并为用户查看您的内容的任何浏览器写入 html。
【讨论】:
embed 元素。看我的回答。