【发布时间】:2017-03-19 19:33:23
【问题描述】:
我的页面包含多个与外部网站相关的 iframe。
如何使用 javascript 或 jquery 将整个页面静音?
【问题讨论】:
-
帧数?和 iframe 一样?你不能碰那些!
-
@ObsidianAge 这不是重复的,因为这个问题是关于访问带有外部内容的框架。
标签: javascript jquery html iframe mute
我的页面包含多个与外部网站相关的 iframe。
如何使用 javascript 或 jquery 将整个页面静音?
【问题讨论】:
标签: javascript jquery html iframe mute
你不能。您需要访问框架的内容,但如果您正在加载外部网站,那么您将遇到同源策略。
有关该主题的更多答案,请查看this question。
【讨论】:
如果您要加载的网站相当简单,您可以通过 php 将它们“加载”并在 html 中添加 <base> 标签。
注意:它不适用于具有大量外部资源的复杂网站
用这个内容创建一个文件iframe-loader.php::
<?php
error_reporting(0);
$url = $_REQUEST['url'];
$html = file_get_contents($url);
$dom = new domDocument;
$dom->strictErrorChecking = false;
$dom->recover = true;
$dom->loadHTML($html);
//BASE
$head = $dom->getElementsByTagName('head')->item(0);
$base = $dom->createElement('base');
$base->setAttribute('href',$url);
if ($head->hasChildNodes()) {
$head->insertBefore($base,$head->firstChild);
} else {
$head->appendChild($base);
}
header('Content-Type: text/html; charset=utf-8');
echo $dom->saveHTML();
?>
然后你可以通过给它一个url来使用加载器:
<iframe src="iframe-loader.php?url=http://www.example.com" />
您将可以访问 iframe,因为它们不会与同源策略混为一谈。
现在你可以使用 @ObsidianAge 在 cmets 中提到的答案了。
【讨论】: