您好我有一个闪存菜单显示一些链接,但是当用户登录时我想将菜单从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>';
}
这可以在不必再次写出所有上述代码的情况下完成吗?
谢谢:)
答案 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。