Встраивание части веб-сайта

Предположим, что я хочу встроить последний комикс одного из моих любимых webcomics в мой сайт как своего рода продвижение для него. webcomic имеет полосу в отделении с идентификатором, таким образом, я полагал, что могу просто встроить отделение в свой сайт, за исключением того, что я не мог найти примеры кода для того, как сделать это (они все показывают, как встроить флэш-память или целый веб-сайт). Кто-то может показать мне (или сказать), как это сделано?

PS я не использовал бы серверные сценарии или внешние сервисы (который является тем, что часто рекомендуется для встраивания RSS).

6
задан Juraj Blahunka 8 February 2010 в 23:09
поделиться

4 ответа

Обновление - междоменный запрос с jQuery (на стороне клиента)

Вчера я просматривал блог Джеймса Падолси, где он опубликовал отличную статью о том, как выполнить междоменный запрос с jQuery, а также У Криса Хейлманна есть хорошая ДЕМО .

Принцип состоит в том, чтобы использовать YQL -> yahoo api для запросов веб-страниц, где вы получаете JSON со всем HTML. Удачного парсинга :)

Очистите удаленные данные с помощью php, загрузите с помощью jQuery

А как насчет простого вызова AJAX , который перехватил бы комический элемент и обновил его содержимым ваш

в основном используется для этой цели?

Также вы будете использовать простой php для получения удаленной страницы, потому что вы не можете выполнить вызов ajax в другом домене

примечание: у пользователя должен быть включен JavaScript, также в следующем коде используется библиотека jQuery

Собираем все вместе

  1. на вашей странице, где вы хотите отображать удаленный комикс, создайте div только для этой цели , назовем его update-comic

     
    {{ 1}}
  2. запишите php , назовите его comic-scrape.php , он загрузит html с удаленной страницы, вам следует подумать о кэширует ответ и обновляет его по указанному rval (например, 30мин, 1 час, ваш звонок .. :))

    производительность сервера не должна снизиться после простой реализации проверки кеша

     
  3. теперь идет магия jQuery , в которой вы делаете ajax вызовет ваш php scraper и возьмите только тот элемент, который вас интересует. Поместите этот скрипт на страницу просмотра (где у вас есть

      
     

Надеюсь, я охватил все.

Использование simplexml и xpath

Как предложил philfreo в комментарии, жизнеспособное решение также может включать выбор необходимого идентификатора на стороне сервера. Это очень просто с использованием PHP simplexml и небольшого xpath:

<?php

    // set remote url and div id to be found
    $elementId = 'remote-comic-id';
    $url = 'http://www.example.com/';

    // instantiate simple xml element and populate from $url
    $xml = new SimpleXMLElement($url, null, true);

    // find required div by id
    $result = $xml->xpath("//div[id={$elementId}]");

    // take first element from array, which is our desired div
    $div = array_pop($result);

    echo $div;
12
ответ дан 10 December 2019 в 00:38
поделиться

Можно просто использовать iframe . Содержимое не буквально на этой странице, но выглядит так, как будто оно есть.

Вот пример: http://www.w3schools.com/TAGS/tryit.asp?filename=tryhtml_iframe

Похоже на то:

<iframe src ="http://www.example.com/index.html" width="100%" height="300"></iframe>
-1
ответ дан 10 December 2019 в 00:38
поделиться

Добавьте ответный _ в блок контроллера, чтобы соответствующий шаблон отображался в соответствии с требуемым форматом. Например:

def show
  ...
  respond_to do |format|
    format.html # renders show.html.erb
    format.xml  # renders show.xml.builder
  end
end
-121--4028745-

Если разделителями являются ':', можно разделить на ':', а затем использовать x.strip () в последовательностях, чтобы избавиться от любого начального или конечного пробела. int () игнорирует места.

-121--983434-

< embed src = «url вашего комикса» ширина = «300» height = «250 »/>

-2
ответ дан 10 December 2019 в 00:38
поделиться

Я решил ответить на свой вопрос, по крайней мере, пока кто-то не предоставит «лучшее» решение. Решением является мое второе обновление, где я «взламываю» положение элементов с перестановкой по javascript.

Обновить 2: Хорошо, я отследил это до быть IE не нравится процентные размеры быть установленным на элементе выбора (хотя он получает это значение прекрасно первоначально, он ломается после вас каким-то образом манипулировать элементом). Выполнение следующих 2 строк jQuery решает проблему:

 $ ('.dual-box > .list-box > select') .height ($ ('.dual-box') .height ());
$ ('.dual-box > .list-box > select') .width (($ ('.dual-box') .width ()/100) * 45);

Я надеялся, что это не стать взломом поверх взлома, но к сожалению, это кажется из. Делает любой человек имеет чистый способ разрешения Эта проблема?

-121--4481973-

Существует горячее исправление от Microsoft: Microsoft Connect . Я нашел эту ссылку на этом блоге .

Это исправление решило проблему после перезапуска для меня.

-121--2274731-

Невозможно, так как нельзя управлять содержимым iframe/frame. Использование тэга iframe приведет только к изменению содержимого тэга, но не src. Ни с AJAX, потому что вы должны быть в одном домене.

Так, например, можно использовать PHP с ЗАВИТКОМ или довольно просто с fopen.

1
ответ дан 10 December 2019 в 00:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: