使用JS将可能来自html iframe的音频源静音

问题描述:

我正在使用iframe嵌入相当多的外部HTML页面的画廊页面,但是,这些外部页面中有一些嵌入了我想要静音的音频。使用JS将可能来自html iframe的音频源静音

下面是HTML文件的范例代码

gallery.html

<div id="pages"> 
    <iframe id="embed" src="https://xyz.com/page1.html"></iframe> 
    <iframe id="embed" src="https://sdf.com/page2.html"></iframe> 
</div> 

page1.html

<html> 
    <head> 
    <!-- head stuff--> 
    </head> 
    <body> 
    <audio autoplay> 
     <source src="http://audio.url/somefile.ogg" type="audio/ogg"> 
     <source src="http://audio.url/somefile.mp3" type="audio/mpeg"> 
     Your browser does not support the audio tag. 
    </audio> 
    <!--some more body content> 
    <body> 
</html> 

而且,因为我处理多外部页面,音频标签大多可能没有附加到它们的ID。这使得document.getElementById()成为不可靠的选择。我用document.getElementsByTagName("input")进行了实验,但无法完全消除音频。任何人都可以帮助我吗?

+1

我也试过:'document.getElementsByTagName(“audio”)。muted = true;'但这种方法似乎也失败了。 – Sayak 2013-05-10 09:29:36

+0

为什么不在音频上设置控件,因为如果没有id,试图在香草JS的iframe的另一侧定位元素是很困难的。 – zer00ne 2016-05-15 18:04:36

由于这些页面是由不同的域提供的,因此您将无法访问iframe中的HTML,原因是相同的源策略。