我的网页包含多个与外部网站相关的iframe。
如何使用javascript或jquery将整个页面静音?
答案 0 :(得分:0)
你做不到。您需要访问框架的内容,但如果您正在加载外部网站,那么您将遇到相同的原始政策。
有关该主题的更多答案,请查看this question。
答案 1 :(得分:0)
如果您加载的网站相当简单,可以通过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在评论中提到的答案。