我有一个网页,可以执行各种AJAX请求(随着时间的推移)加载页面上显示的HTML片段。返回的HTML有时包含相对URL (在[href],img [src]等中),我无法在服务器端轻松更改它。将HTML插入到我的文档中时,这些URL将相对于我的网页位置进行解释,从而导致错误的目的地。
我考虑使用HTML <base>
元素来重新定义相对网址,但这会立即影响整个网页,而我需要使用不同的基本网址每个HTML片段。
目前最简单的解决方案如下:(i)在DOM元素中加载HTML片段(ii)访问所有节点以对相对URL进行绝对化,以及(iii)将结果元素插入到我的文档中。但是:
或者有更好的方法,也许使用Javascript HTML解析器?我需要能够处理相当普通的HTML,但支持的浏览器集是有限的(Chrome的最新版本,Mobile Safari)。我正在使用PrototypeJS,因此非常感谢此框架的代码示例(但jQuery也很好)。