2012-08-08 26 views
0

我想在用戶單擊視頻列表中的某個元素時更改嵌入視頻的來源。它在FF中正常工作,但在IE和Chrome中都沒有任何反應。任何人都可以告訴我如何讓這個功能在所有瀏覽器上正常工作?
繼承人我的JavaScript:更改嵌入式視頻的src在FF中工作,但不在IE或Chrome中

function updateSource(id) 
{ 
    var video = document.getElementById('video'); 
    video.src=document.getElementById(id).getAttribute('data-value'); 
} 

,這裏是我的HTML:

<embed id="video" src="https://www.youtube-nocookie.com/v/h5NeJaWR5WA?version=3&amp;hl=en_US&amp;rel=0&showinfo=0" 
      type="application/x-shockwave-flash" width="480" height="360" 
      allowscriptaccess="never" allowfullscreen="true"></embed> 


<li id="one" class="videoLink" style="margin-top: -1em;" onclick="updateSource(this.id)" 
data-value="https://www.youtube-nocookie.com/v/h5NeJaWR5WA?version=3&amp;hl=en_US&amp;rel=0&showinfo=0"> 
     <img class="youtubeThumb" src="http://img.youtube.com/vi/h5NeJaWR5WA/default.jpg" /> 
     <p class="videoTitle">Video Number One!</p> 
</li> 
<li id="two" class="videoLink" onclick="updateSource(this.id)" 
data-value="http://www.youtube-nocookie.com/v/r19okL-IW6Q?version=3&amp;hl=en_US&amp;rel=0&showinfo=0"> 
     <img class="youtubeThumb" src="http://img.youtube.com/vi/r19okL-IW6Q/default.jpg" /> 
     <p class="videoTitle">Video Number Two!</p> 
</li> 
+0

視頻元素在哪?您提供了不完整的HTML。 – 2012-08-08 22:44:17

+0

我發佈後就注意到了。現在更新了。 – Jmh2013 2012-08-08 22:47:06

+0

另外,你永遠不應該用一個數字開始一個id。這在W3C規範中已明確規定(並且已知會導致問題)。 http://www.w3.org/TR/html4/types.html#type-name。另外,確保ID不重複。 - 爲了清楚起見,公平地說,ID的數字通常不會導致問題......除非您開始編寫腳本來訪問DOM(這就是發生的事情)。 – 2012-08-08 22:50:13

回答

1

解決方法:http://jsfiddle.net/tuDXg/4/

我不相信embed元素支持更新src屬性。您應該將其包裝在一個div中,並將div的innerHTML更改爲具有更新的src的新embed元素。

+0

謝謝!這很好用!我沒有想過替換整個'embed'元素。 – Jmh2013 2012-08-08 23:31:26

0

事實上,它看起來像(id值)的數量的問題。它認爲你傳遞一個整數(而不是一個字符串)作爲索引(而不是一個ID值)。

+0

我將ID更改爲'one'和'two',但我仍然遇到同樣的問題。我更新了我的代碼。 – Jmh2013 2012-08-08 23:00:37

+0

事實證明,數字作爲id是好的。看我的[jsFiddle](http://jsfiddle.net/tuDXg/4/)。 – CgodLEY 2012-08-08 23:16:13

+0

他們可能會工作...但是,不應該這樣使用。 – 2012-08-09 00:09:09

相關問題