Повторно основать относительные URL в HTML, возвращенном из запросов AJAX - PullRequest
0 голосов
/ 17 января 2012

У меня есть веб-страница, которая выполняет различные AJAX-запросы (со временем) для загрузки фрагментов HTML, которые отображаются на странице. HTML-код, который возвращается, иногда содержит относительные URL (в виде [href], img [src] и т. Д.), И я не могу легко изменить это на стороне сервера. Когда HTML-код вставляется в мой документ, эти URL-адреса интерпретируются относительно местоположения моей веб-страницы, что приводит к неправильным адресатам.

Я думал об использовании чего-то элемента HTML <base> для перебазирования относительных URL-адресов, но это влияет на всю веб-страницу одновременно, тогда как мне нужно использовать другой базовый URL-адрес для каждого фрагмента HTML .

В настоящее время самым простым решением кажется следующее: (i) загрузить фрагмент HTML в элемент DOM, (ii) посетить все узлы, чтобы абсолютизировать относительные URL, и (iii) вставить полученный элемент в мой документ. Однако:

  1. На шаге (i) я думаю, что браузер уже начнет загружать изображения в неправильных местах? Вы можете предотвратить это?
  2. Для шага (ii) существует ли более или менее комплексный способ найти все свойства URL? a [href] и img [src] являются наиболее важными, но у вас также могут быть объект [src], скрипт [src] и другие вещи, которые я забыл.

Или есть ли лучший способ, возможно, с использованием HTML-анализатора Javascript? Мне нужно уметь работать с довольно общим HTML, но набор поддерживаемых браузеров ограничен (последние версии Chrome, Mobile Safari). Я использую PrototypeJS, поэтому примеры кода для этого фреймворка наиболее ценны (но jQuery тоже подойдет).

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