Как отключить звук на моем сайте с помощью JS/JQUERY?

У меня есть страница, содержащая несколько фреймов, относящихся к внешним сайтам.

Как я могу отключить всю свою страницу с помощью javascript или jquery?


person Arkadiusz G.    schedule 19.03.2017    source источник
comment
Возможный дубликат Как отключить весь звук на странице с помощью JS?   -  person Obsidian Age    schedule 19.03.2017
comment
кадры? как в фреймах? Их нельзя трогать!   -  person Miro    schedule 19.03.2017
comment
@ObsidianAge Это не дубликат, так как этот вопрос касается доступа к кадрам с внешним содержимым.   -  person Schlaus    schedule 19.03.2017
comment
Возможный дубликат jQuery/JavaScript: доступ к содержимому iframe   -  person    schedule 20.03.2017


Ответы (2)


Вы не можете. Вам нужно будет получить доступ к содержимому фреймов, но если вы загружаете внешние сайты, вы столкнетесь с той же политикой происхождения.

Чтобы получить дополнительные ответы на эту тему, проверьте этот вопрос.

person Schlaus    schedule 19.03.2017

Если сайты, которые вы загружаете, довольно просты, вы можете «загрузить» их через php и добавить тег <base> в html.

Примечание. Он не будет работать на сложных веб-сайтах с большим количеством внешних ресурсов.

Создайте файл 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" />

У вас будет доступ к фреймам, поскольку они не объединяются с одной и той же политикой происхождения.

Теперь вы можете использовать ответ, который @ObsidianAge упомянул в комментариях.

person Miro    schedule 19.03.2017