Поменять flash src на jquery? - PullRequest
5 голосов
/ 14 мая 2010

Привет, у меня есть флэш-меню с несколькими ссылками, но когда пользователь вошел в систему, я хочу изменить меню с menu1 на menu2 ..., чтобы оно отображало «Моя учетная запись», а не «Регистрация»

Приведенный ниже код предназначен для моей флеш-памяти:

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


 }

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

Спасибо:)

Ответы [ 2 ]

6 голосов
/ 14 мая 2010

Использование .attr():

$(document).ready(function() {
    $("#menu > object > embed").attr("src", "new link");
});
0 голосов
/ 14 мая 2010

Если 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...