从AJAX请求返回的HTML中重新定位相对URL

时间:2012-01-17 07:50:44

标签: javascript jquery html ajax prototypejs

我有一个网页,可以执行各种AJAX请求(随着时间的推移)加载页面上显示的HTML片段。返回的HTML有时包含相对URL (在[href],img [src]等中),我无法在服务器端轻松更改它。将HTML插入到我的文档中时,这些URL将相对于我的网页位置进行解释,从而导致错误的目的地。

我考虑使用HTML <base>元素来重新定义相对网址,但这会立即影响整个网页,而我需要使用不同的基本网址每个HTML片段。

目前最简单的解决方案如下:(i)在DOM元素中加载HTML片段(ii)访问所有节点以对相对URL进行绝对化,以及(iii)将结果元素插入到我的文档中。但是:

  1. 在步骤(i),我认为浏览器已经开始在错误的位置加载图片?你能预防吗?
  2. 对于步骤(ii),是否有或多或少全面的方法来查找所有网址属性? [href]和img [src]是最重要的,但你也可能有对象[src],脚本[src]和其他我忘记的东西。
  3. 或者有更好的方法,也许使用Javascript HTML解析器?我需要能够处理相当普通的HTML,但支持的浏览器集是有限的(Chrome的最新版本,Mobile Safari)。我正在使用PrototypeJS,因此非常感谢此框架的代码示例(但jQuery也很好)。

0 个答案:

没有答案