0

ユーザーがビデオのリスト内の要素の 1 つをクリックしたときに、埋め込まれたビデオのソースを変更したいと考えています。FF では正常に動作しますが、IE と Chrome の両方で何も起こりません。この機能をすべてのブラウザで適切に動作させる方法を誰か教えてもらえますか?
ここに私のJavaScriptがあります:

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

2 に答える 2

1

解決策: http://jsfiddle.net/tuDXg/4/

要素が属性embedの更新をサポートしているとは思いません。srcそれを div でラップし、div を更新された src を持つinnerHTML新しい要素に変更する必要があります。embed

于 2012-08-08T23:06:54.483 に答える
0

実際には、番号 (id 値) が問題のようです。整数 (文字列ではない) をインデックス (ID 値ではない) として渡していると見なされます。

于 2012-08-08T22:51:41.767 に答える