Используйте Ajax в Prototype.js, чтобы загрузить ЧАСТЬ внешней страницы в div - PullRequest
0 голосов
/ 01 декабря 2011

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

Существует ли что-либо подобное в прототипе.Я искал примеры без удачи.Если я не смогу его найти в ближайшее время, мне придется выполнить «гимнастику» с Ajax.Request и некоторыми функциями, связанными с onSuccess.

Ответы [ 2 ]

0 голосов
/ 01 декабря 2011

Вместо AJAX вы можете обойтись с помощью iframe.

// dollar function calls Element.extend
var iframe = $(document.createElement('iframe'));

// control how and what it loads
iframe.addEventListener('onLoad', function() {
    $('container').update(iframe.contentDocument.select('#someID').first());
});
iframe.setAttribute('src', 'http://URL');

// add it as invisible, content isn't loaded until then
iframe.setAttribute('hidden', true);
document.body.appendChild(iframe);

Из минимального теста ясно, что вам нужно быть столь же осознанным в отношении политик перекрестного происхождения, как и любой метод AJAX, то естьПИТА.

0 голосов
/ 01 декабря 2011

Вы могли бы сделать что-то подобное, хотя это ни в коем случае не элегантное решение.

new Ajax.Updater("container", 'www.babes.com', {
  onSuccess: function() {
    $("container").update( $('idOfSomeLoadedElement') );
  }
});

Я не думаю, что есть действительно элегантный способ сделать это чисто в js. В идеале вы должны делать запрос AJAX только на то, что вам нужно. Возможно, вам удастся сделать что-то на стороне сервера, чтобы вычеркнуть то, что вам не нужно (в основном, перегрузить вышеупомянутые функции onsuccess на сервер).

...