Открытие внешней страницы внутри нашей страницы - PullRequest
1 голос
/ 16 августа 2010

Я использовал для реализации этого заголовка выше, используя iframe, но теперь я больше не хочу его использовать. У меня есть некоторые планы, мне нужно реализовать их, открыв внешнюю страницу внутри нашей страницы asp.net безиспользуя любой iframe У меня есть только простая aspx-страница с разделением и панелью и некоторыми другими серверными компонентами, я просто хочу знать, как я могу это сделать без iframe?Я не хочу разрабатывать новый сложный элемент управления, но я ищу, что некоторые методы могут сделать это для меня.

Я должен упомянуть, что мне нужно контролировать область, которая загружается внешним сайтом, так же, как и iframe.но разница в том, что iframe не может быть обработан с помощью ajax, даже если вы поместите iframe на панель обновлений, ваша страница обновляется и выполняет обратную передачу, в то время как вы меняете значение src программно (в коде c #), поэтому нам нужно разработать некоторые другие методы, каково решение?

Я думал, что смогу сделать запрос, получить html и показать в div, но я не смог его реализовать.

Ответы [ 4 ]

4 голосов
/ 16 августа 2010

Вы могли бы

  1. Создайте веб-запрос на стороне сервера, а затем установите для текста div значение HTML, возвращаемое
  2. Вы можете создать невидимый iFrame, чтобы выполнить запрос, а затем использовать JavaScript, чтобы извлечь HTML-код из iFrame и поместить его в DIV. (РЕДАКТИРОВАТЬ: Комментарий предполагает, что это не сработает)

Обычно вы не можете звонить (например, XmlHttpRequest) на внешние веб-сайты из-за проблем межсайтового скриптинга.

0 голосов
/ 16 августа 2010

Зависит от того, где вы хотите объединить данные. Если вы хотите объединить данные в браузере клиента, единственная другая опция, кроме фреймов, - это использование Javascript / Ajax.

Вы можете сделать jQuery.ajax () при загрузке страницы и использовать метод html () в div, чтобы заполнить его текстовым результатом этого вызова AJAX.

Старайтесь использовать как можно меньше иерархии элементов управления и жизненного цикла WebForms. Похоже, что ваша проблема может быть исправлена ​​с помощью AJAX, если вы не возражаете против второго запроса при загрузке страницы.

Если вы хотите объединить контент на стороне сервера (редко правильный способ сделать), вы можете использовать System.Net.HttpWebRequest , чтобы получить и объединить данные до вернуть его в браузер.

0 голосов
/ 16 августа 2010

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

0 голосов
/ 16 августа 2010

Ваш прямой запрос "открыть внешнюю страницу внутри нашей страницы asp.net без использования iframe" невозможно, по замыслу.

Вы упомянули AJAX. Вы можете использовать AJAX, чтобы загрузить свою страницу, удалить заголовки (или сделать это на стороне сервера) и заменить тег <body> на тег <div> (или сделать это на стороне сервера). Таким образом, вы можете разместить содержимое своей страницы где угодно. В качестве контейнера я предлагаю вам использовать элемент уровня блока, достаточно <div>.

Единственная (!) Проблема в том, что подобные межсайтовые запросы не учитываются браузерами. Вы можете решить эту проблему на стороне сервера, загрузив страницу из другого места, используя WebRequest или аналогичные средства.

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