奇怪的Firefox SWFObject显示问题

时间:2009-07-27 14:11:48

标签: javascript flash firefox joomla swfobject

我正在开发一个我正在开发的网站最奇怪的问题。在主页上我有一个flash幻灯片放映,在IE中显示正常。但它并没有出现在Firefox中,而是留下了空白区域。

我正在使用SWFObject来显示闪光灯。我知道它至少会在移除保持图像时触发。但是,如果我右键单击白色区域,我会得到一个HTML上下文菜单,而不是闪存菜单,这表明它甚至没有将flash对象写入页面,更不用说加载flash SWF文件了。

如果我将主页的源保存为静态HTML并将其上传到服务器,则可以正常工作。

这可能与文件编码或http标头有关吗?

我已经尝试了很多东西,例如删除内容,JS,CSS等。事实上,文件的静态版本可以工作,但服务器驱动的版本不会让我发疯。

服务器正在运行Joomla CMS。

代码是:

<script type="text/javascript" src="/scripts/swfobject.js"></script>
<script type="text/javascript">swfobject.embedSWF("/flash/loader.swf", "flashContent", "960", "310", "9.0.0", "/flash/expressInstall.swf");</script>

HTML代码:

<div class="middle" id="flashContent">
<img class="panelBgImage" src="/images/main/Home.jpg" title="Home"/>
</div>

可以看到该网站的临时版本@ http://slc.synterax.com/(可在2009年8月6日之前使用)

提前致谢


让页面头部的脚本确实为我修好了。但是我在过去看过flash和firefox以及swf的问题。我解决它的唯一方法是重新安装闪存:(

我认为在其他浏览器中工作正常吗?

8 个答案:

答案 0 :(得分:2)

在过去的一天半里,我遇到了类似的问题,我找到了答案。 swfobject.embedSWF应该在文档的HEAD部分(我猜这是Joomla不可能的)。如果你不能在那里移动它,那就是workaround here。您可以添加以下代码:

swfobject.switchOffAutoHideShow();

就在您的swfobject.embedSWF

之前

答案 1 :(得分:1)

您是否尝试过动态方法? http://code.google.com/p/swfobject/wiki/documentation

另外,firebug的NET面板告诉你什么?它是否显示该文件的请求?如果是这样,服务器响应是什么?

答案 2 :(得分:1)

有同样的问题,但其中一个答案有帮助。可能会帮助别人。

registerObject需要位于head标签中。

我的代码是把它放在那里,但是......我正在打开html标签之前向页面写一个调试消息。如果您查看页面源(例如右键单击),则head标记中的registerObject

但是,因为我在registerobject之前编写了调试消息,所以Firefox正在关闭head标签并将registerObject移动到正文。通过查看显示不同html代码布局的Firebug找到了这个。

删除了调试消息并且它有效。又浪费了一个小时......

答案 3 :(得分:1)

我使用带有WordPress的swf文件遇到了这个。

swf文件在FF 3.5中只有一个问题,它没有加载。

我补充说:

<script src="swfobject.js" type="text/javascript"></script>

到主题的header.php,它也解决了我的问题。

swf是使用Flash Builder 4创建的。

答案 4 :(得分:0)

哦,天哪。浪费了2-3个小时试图在Firefox中获得swfobject显示闪存,我终于解决了它 - 但不是没有Armitage的帮助。 我唯一要说的是我最终只能放置这条线:

<script src="/Scripts/General/swfobject.js" type="text/javascript"></script>
<{1>}节点中的

。 swfobject.embedSWF()行和所有自定义代码不需要位于那里。

另外 - 我现在不能发表评论(关于排名的事情)......但如果可以,我会有。 谢谢阿米蒂奇! 1

答案 5 :(得分:0)

太奇怪了! 我使用registerObject捕获相同的问题,它在IE中是正常的,但在FF3.5中不是, 浪费了3个小时,谢谢你们所有人只是把

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
在头脑中,它会解决。

答案 6 :(得分:0)

我遇到了同样的问题,但这是一个MasterPage问题。菲尔给了我线索。我的标签中有以下内容:

    <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
    </asp:ContentPlaceHolder>

    <script type="text/javascript">
    // <![CDATA[

        var flashvars = {};
        var params = {};
        params.wmode = "opaque";
        params.scale = "exactFit";
        var attributes = {};
        swfobject.embedSWF("RainbowWishBackgroundText.swf", "flashTarget", "100%", "870", "9.0.0", "expressInstall.swf", flashvars, params, attributes);

    // ]]>
    </script>

我把它改为:

    <script type="text/javascript">
    // <![CDATA[

        var flashvars = {};
        var params = {};
        params.wmode = "opaque";
        params.scale = "exactFit";
        var attributes = {};
        swfobject.embedSWF("RainbowWishBackgroundText.swf", "flashTarget", "100%", "870", "9.0.0", "expressInstall.swf", flashvars, params, attributes);

    // ]]>
    </script>

    <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
    </asp:ContentPlaceHolder>

现在它有效!

答案 7 :(得分:0)

swfobject.switchOffAutoHideShow()为我工作之前加入swfobject.registerObject()

<script type="text/javascript" src="js/swfobject.js"></script>
<script type="text/javascript">
    swfobject.switchOffAutoHideShow();
    swfobject.registerObject("flashAntelope", "9.0.0");
</script>