Расширение Chrome: загрузка произвольных URL в iFrame
У меня есть расширение Chrome, которое поставляется с всплывающим окном, которое, помимо прочего, содержит iframe
загружать сайты. В принципе я могу установить src
атрибут iFrame и он отлично работает. Проблема, однако, заключается в том, что многие веб-сайты не позволяют загружаться внутри фрейма, что приводит к Refused to display '...' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'
ошибка. Справедливо!
После некоторого осмотра я нашел решение PHP/cURL, которое использует простой скрипт для извлечения содержимого URL-адреса с использованием cURL и возврата содержимого, которое, в свою очередь, затем используется в качестве значения для src
приписывать. Вот сценарий grabber.php
:
<?php
$ch = curl_init($_GET['url']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
$content = curl_exec($ch);
curl_close($ch);
echo $content;
?>
И вот код, который я использую, чтобы установить src
атрибут iFrame:
$('#myIFrame').attr('src', './grabber.php?url='+someURL);
Опять же, это работает в принципе, но только для довольно статичных / простых HTML-сайтов. Как только веб-сайт становится очень динамичным, я получаю только некоторые фрагменты, то есть пропущенный контент и / или недостающие таблицы стилей. Короче говоря, то, что показывает iFrame, часто не имеет ничего общего с тем, как на самом деле выглядит веб-сайт.
Есть ли шанс заставить это работать должным образом для любого веб-сайта?