0

我希望我的 javascript 获取用户输入的 url 并发送到源元素上的 src 属性,但它不起作用。请帮帮我?

这是我的脚本:

    <input type="text" name="aniurl" size="60"><br>
      <button class="btn" onclick="playVideo()" >button</button>
     </div>
    <video controls preload="auto" >

  <source id="anir" type="video/mp4">

 <script>

function playVideo(){
var aniurl = document.getElementsByName("aniurl")[0].value;
var ani2 = document.getElementById("anir")[0].value;
ani2.setAttribute("src",aniurl);
}

 </script>
4

3 回答 3

0
var ani2 = document.getElementById("anir")[0].value;

应该:

var ani2 = document.getElementById("anir").value;

getElementById()不返回数组。

于 2013-03-05T03:46:03.400 回答
0
var ani2 = document.getElementById("anir")[0].value;` 

应该

var ani2 = document.getElementById("anir");

getElementById返回单个元素(或 null)然后setAttribute是 dom 元素上的方法,而不是value会给你的字符串。

你的视频标签也没有关闭。

于 2013-03-05T03:46:32.543 回答
0
  1. id="anir"应附加到视频标签,而不是源标签。
  2. 您不能[0]在 getElementById 之后使用,因为它返回元素,而不是元素数组。
  3. 正确关闭视频标签
  4. 您不应该使用.value获取anir元素,因为您想要整个元素,在后续行中设置源属性。

最后结果:

<input type="text" name="aniurl" id="aniurl" size="60" value="http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4" />
<button class="btn" onclick="playVideo()">button</button>

<video width="320" height="240" id="anir" controls>
  <source src="movie.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
<script>
    function playVideo() {
        var aniurl = document.getElementById("aniurl").value;
        var ani2 = document.getElementById("anir");
        ani2.setAttribute("src", aniurl);
    }
</script>

Live Demo

于 2013-03-05T03:51:28.343 回答