1

用于更改标签 src 的 Javascript 可以内联工作,但是当我尝试将完全相同的代码嵌入到函数调用中或按钮标签的“onclick”调用中时,会发生注意事项。不会抛出任何错误消息。

我错过了什么?

这是代码:

 <div style="width: 100%; height: 250px; overflow: hidden;">
  <video id="video" width="100%" loop autoplay controls>
  <source id="videoSource" src="video1.m4v" type="video/mp4">
  Your browser does not support the video tag.
</video>
</div>

<script language="Javascript">
    document.getElementById('video').volume=0;
   // uncommented, the next line works, changing the video src to a new URL     
   // document.getElementById('videoSource').src = "video2.m4v";
    function changevideo() { 
        alert("Changing Video");
    // but embedded in a function or called from a button onclick, does not work
    document.getElementById('videoSource').src = "video2.m4v";
    }       
</script>

<div>
 <button onclick="javascript: changevideo()">Change Movie</button>
</div>

我已经在 Mac 上的 Safari 和 Chrome 上进行了测试,结果相同。谢谢你的帮助!

4

3 回答 3

0

像这样在点击事件内联中使用函数

<div style="width: 100%; height: 250px; overflow: hidden;">
 <video id="video" width="100%" loop autoplay controls>
  <source id="videoSource" src="video1.m4v" type="video/mp4">
  Your browser does not support the video tag.
 </video>
</div>


<div>
 <button onclick="javascript: document.getElementById('videoSource').src = 'video2.m4v'">Change Movie</button>
</div>

或者您可以使用 jquery 事件绑定。这是一个更好的方法。

在某些浏览器中的方法中,我认为 changevideo 函数将是未定义的

于 2013-08-23T05:28:56.937 回答
0

不确定这是否会解决您的问题,但language它是script标签的一个不推荐使用的属性(W3C:HTML 文档中的脚本)。

使用type="text/javascript"或不使用任何属性,因为type="text/javascript"是默认值。

于 2014-10-22T13:21:39.960 回答
0

不要放置源标签 ID,而是使用视频 ID。这个对我有用!

function changevideo() { document.getElementById('video').src = "video2.m4v"; }

于 2014-10-22T13:10:55.610 回答