2010-05-13 3 views
5

Привет, у меня есть меню вспышки, показывающее несколько ссылок, но когда пользователь вошел в систему, я хочу изменить меню из меню1 на menu2 ... так, чтобы он отображал «Моя учетная запись», а не «Регистрация»Изменить flash src с помощью jquery?

ниже код для моей вспышки:

<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> 

Php:

if (loggedin()) 
{ 

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


} 

Может ли это быть сделано без необходимости писать все выше код снова?

Спасибо :)

ответ

6

Используйте .attr():

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

Спасибо, что было легко! : D Видимо, мне нужно подождать 6 минут, чтобы принять это как ответ ..haha – Elliott

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/и т. Д. Все больше способна к эффектам. Всплывающие меню - , поэтому 2003.

Смежные вопросы