Включить веб-страницу внутри div - PullRequest
9 голосов
/ 07 июля 2011

Я должен включить веб-страницу в div моей веб-страницы.Я хочу, чтобы что-то вроде iframe было сделано с DIV.По сути, я буду предоставлять URL для моего div, и он должен открывать его внутри себя ... Есть ли что-то подобное в современном HTML?Я не могу использовать фреймы, так как некоторые браузеры имеют проблемы с фреймами.

Ответы [ 6 ]

18 голосов
/ 16 сентября 2012

Попробуйте использовать элемент <object>:

<div style="margin: 0 auto; width:100%; height:400px;">
    <object type="text/html" data="**URL to page**"
            style="width:100%; height:100%; margin:1%;">
    </object>
</div>
5 голосов
/ 07 июля 2011

Неа. Вы не можете встроить полный HTML-документ в другой элемент div, так как это элемент уровня блока , и W3C определил, что может быть включено в него.

Но есть обходной путь. Выполните следующие действия:

  1. Получить документ, используя ajax (используйте jQuery, используйте его)
  2. Извлеките содержимое элемента <body> и поместите его в элемент div
  3. Получите все ссылки и скрипт элемента <head> и добавьте их к элементу <head> вашего существующего pgae.
3 голосов
/ 07 июля 2011

вы должны использовать iframe. это в основном то, что для iframes. если вы в любом случае придерживаетесь современных браузеров, у них нет проблем с iframes (не больше, чем вам придется использовать вместо использования div) ...

1 голос
/ 07 июля 2011

Вы можете использовать iframe или, если вы решите использовать функцию загрузки jQuery (http://api.jquery.com/load/), вам нужно избегать проблемы кросс-скриптинга - вам нужно создать какой-нибудь прокси, посмотрите на это: Элемент управления WebBrowser: отключите межсайтовую фильтрацию XSS или другой способ полностью обработать JS в HTML

0 голосов
/ 08 июля 2011

Это действительно продолжение ответа Саида.Чтобы обойти проблемы межсайтового скриптинга, вам нужно написать скрипт на своем собственном сервере, который выполняет вызов CURL для встраивания веб-страницы.Ваш javascript затем вызовет этот скрипт, передав URL в качестве параметра GET / POST.

Я согласен со многими другими людьми здесь, что в этом случае вам действительно следует просто использовать iframe... Я считаю, что вы можете установить iframe без тега src и вручную поместить содержимое в него.Это означало бы, что вам не нужно предпринимать шаги, предложенные Саидом, чтобы разбить голову и тело.Однако вам все еще нужен сценарий, который я описал, чтобы обойти межсайтовый скриптинг.

0 голосов
/ 08 июля 2011

Это должно было быть в самом вопросе, но ОП разъяснил причину, по которой он не хочет использовать iframe, потому что межкадровая связь не разрешена. Ну, это ничего, что прокси + postMessage не может решить.

Я считаю, что просто невозможно встроить полный документ в другой, сохранив такие вещи, как разделение стилей и сценариев и т. П., Без использования фреймов в некотором смысле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...