javascript - 无法通过javascript更改html属性

标签 javascript html video

这很奇怪,我通过 document.getElementsByTag('video') 获取视频我无法更改它们的宽度或任何其他值。

这是我正在使用的 Javascript 代码 -

window.onload = function() {

            this.videos = document.getElementsByTagName('video');

            var self = this;
            for(var i=0;i<videos.length;i++) {
                videos.item(i).addEventListener("loadedmetadata", 
                    (function(index){
                        return function() {
                            console.log(self.videos[index].offsetWidth); //shows X
                            self.videos[index].offsetWidth = "480";
                            console.log(self.videos[index].offsetWidth); //shows X
                        }
                    })(i)
                );
            }
        }

示例 <video>标签-

<video><source src="videos/video_1.mp4" type="video/mp4"></video>

我不知道发生了什么,我从来没有遇到过这样的问题。 谢谢

编辑: 使用 setAttribute 函数只是将其添加到实时 html 中,但大小并没有真正改变

最佳答案

The offsetWidth is a read-only DOM property所以你不能更新它。但是为什么不改变 元素 width 呢?

window.onload = function() {
  this.videos = document.getElementsByTagName('video');
  var self = this;
  for(var i=0;i<videos.length;i++) {
    videos.item(i).addEventListener("loadedmetadata", 
      (function(index){
        return function() {
        self.videos[index].width = "480";
      }
    })(i));
  }
}

您可以考虑边框、内边距、边距...

关于javascript - 无法通过javascript更改html属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24183270/

相关文章:

javascript - 如何在 Vertx 中读取命令行参数

javascript - 当我在 IE 的 View 中聚焦 dom 时,body scrollTop 发生了变化

html - 仅将边框间距应用于表体行

css - 自动溢出,滚动,属性不起作用

AngularJS:如何在手机上打开 native 视频播放器

iphone - 使用 UIImage 和 caf 创建视频文件的问题

javascript - 查看网站图片下载进度?

javascript - 如何从另一个函数获取变量?

javascript - 使用 jQuery 加载 HTML 视频不再起作用

javascript - 使用子数组在 php(或 javascript)中读取 Json 文件