我有一个托管的页面domain1
,我通过 ajax 调用检索了一个包含一些标签的 HTML 片段。这些标签有一个相对src
URL,我只想为这些标签设置一个指向另一个域的基本 URL,比如domain2
.
这是一个示例:我有一个HTMLData
具有以下值的字符串:
'<p> Foo </p> \
<img alt = "Image 1" src = "/relativepath/To/Image1"> \
<div class = "someDiv"> \
<img alt = "Image 2" src = "/relativepath/To/Image2"> \
</div>'
我想在我的页面中添加如下内容:
'<p> Foo </p> \
<img alt = "Image 1" src = "http://domain2/relativepath/To/Image1"> \
<div class = "someDiv"> \
<img alt = "Image 2" src = "http://domain2/relativepath/To/Image2"> \
</div>'
当然,我不知道片段的确切结构,我可能想将它扩展到其他嵌入的对象标签。
这是我到目前为止所写的:
function setBaseURLandConstructDiv (HTMLData) {
var container = document.createElement("div");
container.innerHTML = HTMLData;
var images = container.getElementsByTagName("img");
for (var image = 0;image<images.length;image++) {
if (images[image].src) {
images[image].src = 'http://domain2'+ images[image].getAttribute('src');
}
}
return container.innerHTML;
}
它有效,但对我来说似乎不合适。特别是,在第 行, 浏览器在对 进行(正确)调用之前向container.innerHTML = HTMLData
发出不必要的请求http://domain1/relativepath/To/Image1
http://domain2/relativepath/To/Image1
images[image].src = 'http://domain2'+ images[image].getAttribute('src');
那么有没有另一种修改src
属性的方法呢?(或在本地设置一个基本 URL)