2010-06-06 59 views
8

我試圖動態更改頁面上的嵌入式視頻。它在Firefox中工作,但由於某種原因,它不適用於IE和Chrome(奇怪的組合)。這裏的HTML:動態更改IE/Chrome中的嵌入式視頻src(適用於Firefox)

<object id="viewer" width="575" height="344"> 
     <param name="wmode" value="transparent" /> 
     <param name="movie" value="http://www.youtube.com/v/Lmn94kn08Lw&hl=en&fs=1&color1=0x006699&color2=0x54abd6&rel=0" /> 
     <param name="allowFullScreen" value="true" /> 
     <embed id="embeddedPlayer" src="http://www.youtube.com/v/Lmn94kn08Lw&hl=en&fs=1&color1=0x006699&color2=0x54abd6&rel=0" type="application/x-shockwave-flash" allowfullscreen="true" width="575" height="344" wmode="transparent"></embed> 
    </object> 

這裏是我的JavaScript代碼。點擊一個鏈接更改視頻:

 $("#video a").click(
      function() { 
       var videoAddress = $(this).attr("href"); 
       $("#embeddedPlayer").attr("src", videoAddress); 
       return false; // stop the default link so it just reloads in the video player 
      } 
     ); 

就像我說的影片在Firefox,但在IE完全改變和Chrome沒有任何反應。有任何想法嗎?

+0

這已被問及幾天前,和IIRC的建議是使用'SWFPlayer' JS庫,因爲這個確切的原因。 – 2010-06-06 17:51:30

回答

10

終於想出了一些適用於IE,Firefox和Chrome的東西。

這樣做似乎有點不同尋常,但它適用於IE8/Firefox/Chrome,所以對我來說聽起來不錯。

$("#video a").click(
      function() { 
       var videoAddress = $(this).attr("href"); 

       $("#media-active").html(" "); 
       $("#media-active").html('<object id="viewer" width="575" height="344"><param name="wmode" value="transparent" />' + 
     '<param name="movie" value="' + videoAddress + '" /><param name="allowFullScreen" value="true" />' + 
     '<embed id="embeddedPlayer" src="' + videoAddress + '" type="application/x-shockwave-flash" allowfullscreen="true" width="575" height="344" wmode="transparent"></embed></object>'); 

       return false; // stop the default link so it just reloads in the video player 
      } 
); 
+0

感謝發佈這個,一直試圖找出如何做到這一點,除了我用音頻src做。我還沒有見過任何人說使用.html() – 2011-06-30 13:36:10

+0

完美,謝謝分享! – felixthehat 2011-12-16 17:44:30

+0

@ macca1你好。非常聰明的代碼。我嘗試在我的代碼中使用你的代碼,我嘗試在我的網站中創建一個視頻圖庫。不幸的是我無法讓它工作。你提到的'媒體主動'是'div'嗎?或者一個「對象」?也許這會幫助我。謝謝 – slevin 2013-09-27 17:31:32

0

<embed>標記用於向後兼容。嘗試改變參數值。

$("#viewer param[name=movie]").attr("value", videoAddress); 
+0

嘗試了這一點,但不幸的是它沒有造成差異。 – macca1 2010-06-06 21:01:27