javascript – HTML5视频静音属性未使用属​​性应用,但使用setAttribute应用

在使用HTML5视频时,我发现了一个奇怪的不一致.

Compare these two code snippets and take a look at the Elements tab in Chrome developer tools

utoplay = true;
    video1.muted = true;
    document.body.appendChild(video1);

    const video2 = document.createElement('video');
    video2.setAttribute('autoplay','autoplay');
    video2.setAttribute('muted','muted');
    document.body.appendChild(video2);
  

对于第一个视频,未设置使用JS对象属性的静音集.对于第二个,使用setAttribute工作并设置DOM属性.有趣的是,自动播放的情况并非如此.

这是为什么?是否存在另一个以这种方式表现的属性示例?这有规则吗?除了测试之外,如何判断哪个属性属性在JS中的哪种方式?

最佳答案
这些属性仅用于初始化属性.它们不反映当前的状态.

通过直接设置属性,可以更新对象,但不会影响dom属性.

如果您设置了视频的src(因此您可以实际看到它的运行情况),您将看到属性已正确应用

const video1 = document.createElement('video');

video1.src = 'http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4';
video1.controls = true;
video1.autoplay = true;
video1.muted = true;

document.body.appendChild(video1);

相关文章

vue阻止冒泡事件 阻止点击事件的执行 <div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些