用jquery更改flash src?

时间:2010-05-13 23:22:23

标签: jquery flash

您好我有一个闪存菜单显示一些链接,但是当用户登录时我想将菜单从menu1更改为menu2 ...以便它将显示“我的帐户”而不是“注册”

以下代码适用于我的flash:

<div id="menu"> 
 <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="825" height="69" id="menu1" align="middle">
 <param name="allowScriptAccess" value="sameDomain" />
 <param name="allowFullScreen" value="false" />
 <param name="movie" value="menu1.swf" /><param name="quality" value="high" /><param name="wmode" value="transparent" /><param name="bgcolor" value="#ffffff" /> <embed src="menu1.swf" quality="high" wmode="transparent" bgcolor="#ffffff" width="825" height="69" name="menu1" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
 </object>
 </div>

腓:

if (loggedin())
 {

  echo '<script type="text/javascript">
   CHANGE FLASH LINK HERE
   </script>';  


 }

这可以在不必再次写出所有上述代码的情况下完成吗?

谢谢:)

2 个答案:

答案 0 :(得分:6)

使用.attr()

$(document).ready(function() {
    $("#menu > object > embed").attr("src", "new link");
});

答案 1 :(得分:0)

如果loggedin()是在服务器端进行的加载时检查,为什么不简单地从PHP更改输出?

<div id="menu"> 
    <?php if (loggedin()) { ?>
        <object ...> ...
            <param name="movie" value="menu2.swf" /> ...
        </object>
    <?php } else { ?>
        <object ...> ...
            <param name="movie" value="menu1.swf" /> ...
        </object>
    <?php } ?>
</div>

如果你真的必须从脚本那里做,那么是的,你应该创建一个新的Flash对象(通过innerHTML或DOM方法,或者获得像SWFObject这样的脚本来为你完成)。更改插件对象的源代码并不是可以跨浏览器可靠地执行的操作(尤其是IE)。

最好在页面上包含这两个菜单,然后使用display隐藏其中一个菜单。

最好不要使用Flash菜单,这往往是一种可用性,可访问性和SEO灾难。你已经在jQuery中内置了很多动画可能性,HTML5 / CSS3 /等越来越能够产生漂亮的效果。 Flash菜单 so 2003。