У меня есть веб-страница, которая выполняет различные AJAX-запросы (со временем) для загрузки фрагментов HTML, которые отображаются на странице. HTML-код, который возвращается, иногда содержит относительные URL (в виде [href], img [src] и т. Д.), И я не могу легко изменить это на стороне сервера. Когда HTML-код вставляется в мой документ, эти URL-адреса интерпретируются относительно местоположения моей веб-страницы, что приводит к неправильным адресатам.
Я думал об использовании чего-то элемента HTML <base>
для перебазирования относительных URL-адресов, но это влияет на всю веб-страницу одновременно, тогда как мне нужно использовать другой базовый URL-адрес для каждого фрагмента HTML .
В настоящее время самым простым решением кажется следующее: (i) загрузить фрагмент HTML в элемент DOM, (ii) посетить все узлы, чтобы абсолютизировать относительные URL, и (iii) вставить полученный элемент в мой документ. Однако:
- На шаге (i) я думаю, что браузер уже начнет загружать изображения в неправильных местах? Вы можете предотвратить это?
- Для шага (ii) существует ли более или менее комплексный способ найти все свойства URL? a [href] и img [src] являются наиболее важными, но у вас также могут быть объект [src], скрипт [src] и другие вещи, которые я забыл.
Или есть ли лучший способ, возможно, с использованием HTML-анализатора Javascript? Мне нужно уметь работать с довольно общим HTML, но набор поддерживаемых браузеров ограничен (последние версии Chrome, Mobile Safari). Я использую PrototypeJS, поэтому примеры кода для этого фреймворка наиболее ценны (но jQuery тоже подойдет).