2010-05-13 38 views
5

Xin chào Tôi có một menu flash hiển thị một vài liên kết, nhưng khi người dùng đăng nhập, tôi muốn thay đổi menu từ menu1 sang menu2 ... để hiển thị "Tài khoản của tôi" thay vì "Đăng ký"Thay đổi flash src bằng jquery?

Đoạn code dưới đây là dành cho đèn flash của tôi:

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


} 

này có thể thực hiện mà không cần phải viết tất cả các mã trên ra một lần nữa?

Cảm ơn :)

Trả lời

6

Sử dụng .attr():

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

Cảm ơn điều đó thật dễ dàng! : D Dường như tôi phải đợi 6 phút để chấp nhận điều này như câu trả lời..haha – Elliott

0

Nếu loggedin() được một tấm séc tải thời gian thực hiện trên server-side, tại sao không chỉ cần thay đổi sản lượng từ 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> 

Nếu bạn thực sự phải làm điều đó từ kịch bản sau đó có, bạn nên tạo một đối tượng Flash mới (bằng cách innerHTML hoặc DOM phương pháp, hoặc nhận được một kịch bản như SWFObject để làm điều đó cho bạn). Thay đổi nguồn của một đối tượng plugin không phải là thứ bạn có thể thực hiện qua trình duyệt chéo (đặc biệt là IE).

Có thể tốt hơn nên bao gồm cả hai menu trên trang và chỉ sử dụng display để ẩn một trong số chúng.

Nó gần như chắc chắn sẽ tốt hơn nếu không sử dụng các menu Flash, có xu hướng là khả năng sử dụng, khả năng truy cập và thảm họa SEO. Bạn có rất nhiều khả năng hoạt hình được tích hợp vào jQuery và HTML5/CSS3/etc ngày càng có khả năng tạo ra hiệu ứng đẹp mắt. Các menu flash là vì vậy 2003.

Các vấn đề liên quan