我想使我的网站中的音频和视频声音静音。不会是任何特定的ID或类名。我完全不知道ID名称是什么。所以我想通过video / object / div / src html标记名称进行跟踪,并使声音静音。
javascript可以做到吗?我已经尝试了以下代码;但它不起作用。我感谢您的最佳建议。
<!DOCTYPE html>
<html>
<body>
<button onclick="enableMute()" type="button">Mute sound</button>
<video width="320" height="176" controls>
<source src="mov_bbb.mp4" type="video/mp4">
<source src="mov_bbb.ogg" type="video/ogg">
Your browser does not support HTML5 video.
</video>
<script>
var vid = document.getElementsByTagName("video");
function enableMute() {
vid.muted = true;
}
</script>
</body>
</html>
最佳答案
document.getElementsByTagName
返回对象的集合。因此,如果您要全部静音,则只需遍历它们并使其静音即可:
document.onload = function() {
var videos = document.getElementsByTagName('video');
for (var i = 0; i < videos.length; i++) {
videos[i].muted = true;
}
var audios = document.getElementsByTagName('audio');
for (var i = 0; i < audios.length; i++) {
audios[i].muted = true;
}
}
由于您将问题标记为jQuery,因此这是jQuery的变体:
$(document).ready(function() {
$('video, audio').prop('muted', true);
});
更新-如何使iframe静音
要使iframe静音,则有所不同。同样,您可以遍历它们,但是它们没有
mute
属性。在JavaScript中:
var iframes = document.getElementsByTagName('iframe');
for (var i = 0; i < iframes.length; i++) {
iframes[i].contentWindow.postMessage('{"method":"setVolume", "value":0}', '*');
}
jQuery变体:
$('iFrame').each(function() {
this.contentWindow.postMessage('{"method":"setVolume", "value":0}', '*');
});
JavaScript demo
jQuery demo
关于javascript - 如何使网站上的音频/视频静音任何标签?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31593766/