禁用 Shockwave Flash 时,Firefox 显示随机字符而不是备用图像
Posted
技术标签:
【中文标题】禁用 Shockwave Flash 时,Firefox 显示随机字符而不是备用图像【英文标题】:Firefox shows random characters instead of fallback image when Shockwave Flash is disabled 【发布时间】:2012-03-09 07:52:54 【问题描述】:我有以下代码在页面上显示 swf 对象。它适用于所有浏览器。但是,如果在 Firefox 中关闭了Shockwave Flash,它不会回退到图像并显示一堆字符,而是看起来像“CWS q�x��wX�Y�7z...”所有其他浏览器都回退到图像。我确认我们在我们的服务器上提供 application/x-shockwave-flash MIME 类型。
<script type="text/javascript">
swfobject.registerObject("fd_flash","8.0.0");
</script>
<div>
<object id="fd_flash" >
<param name="movie" value="path/file.swf" />
<param name="wmode" value="opaque" />
<!--[if !IE]>-->
<object data="path/file.swf" type="application/x-shockwave-flash" >
<!--<![endif]-->
<div><img src="path/image.jpg" /></div>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</div>
谢谢!
【问题讨论】:
你能链接到有问题的页面吗?这听起来确实像是 MIME 类型的问题,即使你说你已经检查过了...... 是www.jiwire.com的主页横幅 这将是jiwire.com/sites/default/files/JiWire-FD-Jan2012-a.swf,据我所知,该网站以文本/纯文本形式发送。当然,当我使用 wget 获取该 URL 时,HTTP 标头包括Content-Type: text/plain
。
嗯,是的,你是对的。然而,我从我们的临时服务器下载了这个 swf 文件,它也有 text/plain 标题,但是 Firefox 优雅地回退到那里的图像。
很难说没有访问权限的登台服务器正在做什么......
【参考方案1】:
您可以尝试另一种使用swfobject
的方式。在您的 <head>
中添加一个链接到您的 swfobject.js 文件,然后在您的 <body>
中输入:
<div id="yourFlashDiv">
<!-- ALTERNATE CONTENT GOES HERE -->
<p>This paragraph will show if your Flash content won't</p>
<!-- FLASH CONTENT GOES HERE -->
<script type="text/javascript">
// <![CDATA[
var so = new SWFObject("path/file.swf", "SwfTitleGoesHere", "376", "940", "8", "#FFFFFF");
so.addParam("wmode", "opaque");
so.write("yourFlashDiv");
// ]]>
</script>
</div>
这是我用于 swf 显示的,它在我测试过的每个浏览器上都失败了。希望这会有所帮助
【讨论】:
我无法让它在 drupal 中工作。我将此代码粘贴到内容区域,保存后会显示许多警告,并且仅显示备用内容。 什么样的警告?你确定 jquery 和 swfobject.js 都加载到你的 html 中了吗? 两个库都已加载。警告:DOMDocumentFragment::appendXML() [domdocumentfragment.appendxml]:实体:第 10 行:解析器错误:StartTag:filter_dom_serialize_escape_cdata_element() 中的元素名称无效(/Applications/MAMP/htdocs/6.0 (branch)/modules/filter 的第 1111 行/filter.module)。警告:DOMDocumentFragment::appendXML() [domdocumentfragment.appendxml]: //--> in filter_dom_serialize_escape_cdata_element() (/Applications/MAMP/htdocs/6.0 (branch)/modules/filter/filter.模块)。以上是关于禁用 Shockwave Flash 时,Firefox 显示随机字符而不是备用图像的主要内容,如果未能解决你的问题,请参考以下文章
在 JavaScript 中寻址 Shockwave Flash 对象 (MultiPowUpload) 的属性