отображать веб-страницу внутри другой веб-страницы без рамок

Я ищу способ отображения веб-страницы внутри div другой веб-страницы.
я могу получить веб-страницу с помощью CURL, но поскольку у меня есть внешняя таблица стилей, когда я пытаюсь ее отобразить, она появляется без всех его свойств стиля.
я помню, что Facebook использовал эту технику с общими ссылками (вы видели страницу, которая была связана с заголовком Facebook), провел несколько неудачных тестов jquery, но я не очень понимаю, как продолжить.
Я знаю, что это можно сделать с помощью фреймов. но я всегда здесь, что это хорошая практика, чтобы избежать фреймов, поэтому я немного запутался
какие-либо идеи, как это решить?

10.11.2009 20:16:13
4 ОТВЕТА
РЕШЕНИЕ

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

Как Facebook, так и Google используют эту технику для отображения страниц, сохраняя свою марку / панель навигации над другим сайтом.

2
10.11.2009 20:37:19
Спасибо за это, пойдет с рамным решением. Знаете ли вы случайно, можно ли разрешить закрытие фрейма «заголовка», чтобы пользователь оставался на исходной странице?
Yaniv Golan 10.11.2009 21:44:43
@Yaniv Вы имеете в виду, возможно ли визуально обернуть вашу страницу другой страницей, а не просто сделать баннер заголовка? Если так, то да. Я бы порекомендовал посмотреть iframe и его множество реализаций.
Sean Vieira 10.11.2009 21:55:52
что ж, после некоторого исследования кажется, что это очень необычно, так как iframe не будет корректировать свою высоту в соответствии с содержимым в нем ... Есть некоторые обходные пути, но большинство из них не будут работать, если содержимое iframe от другого домен (что в моем случае) .. облом .. придется еще раз подумать
Yaniv Golan 11.11.2009 00:39:17

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

Чтобы стили не конфликтовали, все на обоих концах должно быть предельно детализировано, а не только общие стили, применяемые ко всем абзацам и т. Д.

1
10.11.2009 20:39:54

Я согласен, что использование фреймов, вероятно, будет лучшим решением для вашей проблемы. но если вы все еще хотите избежать фреймов и поместить содержимое в div с идентификатором externalConent, вы можете запросить таблицы стилей так же, как вы получаете другое содержимое, и префикс каждого правила в них с "#externalContent". сохраните эти таблицы стилей на своем сервере и включите их в свою страницу. с несколькими настройками, это должно работать. Я должен признать, что это решение звучит довольно странно ... ну, это так. но это единственный способ сделать то, что ты просишь.

1
10.11.2009 21:25:19
Затем вам также придется изменить все ссылки на классы HTML. Это кажется немного излишним только для отображения внешней веб-страницы. (Когда-нибудь писал парсер HTML и парсер CSS?)
Earlz 10.11.2009 21:28:34
да, это звучит как большая головная боль :) iframe это будет .. :) спасибо
Yaniv Golan 10.11.2009 21:42:28

Если вы не можете использовать фрейм или фрейм, попробуйте:

  • извлечь HTML внутри тела и вставить его в целевой DIV
  • извлечь и разделы в заголовке

Хотя он не очень чистый, но он определенно будет работать, вы можете вставить форум phpBB другим динамическим способом, используя эту технику, например, посмотрите на http://www.clearerimages.com/forum/ .

0
10.11.2009 22:12:45