Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript动态向所有链接添加相对路径_Javascript_Html - Fatal编程技术网

javascript动态向所有链接添加相对路径

javascript动态向所有链接添加相对路径,javascript,html,Javascript,Html,我正在尝试构建一个html文件来前置和替换字符串 例如,如果我的css文件的url <link href="/srsstore/store/-1/common/components/cbsassets/styles/iPhone.css" type="text/css" rel="stylesheet" /> 和图像文件的url <img src="/s/store/-1/ProductizedWidgets/transparent.png" width="1px" he

我正在尝试构建一个html文件来前置和替换字符串

例如,如果我的css文件的url

<link href="/srsstore/store/-1/common/components/cbsassets/styles/iPhone.css" type="text/css" rel="stylesheet" />

和图像文件的url

<img src="/s/store/-1/ProductizedWidgets/transparent.png" width="1px" height="1px"/>

另外,对于背景图像

<div style="background-color: #e45600;background-image: url(/s/store/4812610/no_preview.gif);background-repeat:repeat-x;font-weight:bold;font-family:Helvetica, Arial, sans-serif; font-size:12px;color:#FFFFFF></div>

您需要在代码中找到所有的a和img,循环遍历它们,获取当前属性值(无论是src还是href),将您的域前置到它,然后设置属性值。我没有对此进行测试,但这是总体思路:

var links = document.getElementsByTagName("a");
var images = document.getElementsByTagName("img");

for (i=0; i < links.length; i++) {
  links[i].setAttribute("href","domain.com" + links[i].getAttribute("href"));
}

for (i=0; i < images.length; i++) {
  images[i].setAttribute("src","domain.com" + images[i].getAttribute("src"));
}
var links=document.getElementsByTagName(“a”);
var images=document.getElementsByTagName(“img”);
对于(i=0;i
使用jquery可以尝试以下方法:

window.onload = function() {
    var domain = 'YOUR_DOMAIN';

    // For images        
    var imgs = document.getElementsByTagName("img");
    for (var i = 0; i < imgs.length; i++) {
        imgs[i].setAttribute("src",domain + imgs[i].getAttribute("src"));
    }

    // For CSS files
    var links = document.getElementsByTagName("link");
    for (var i = 0; i < imgs.length; i++) {
        links[i].setAttribute("href",domain + links[i].getAttribute("href"));
    }
};
window.onload=function(){
var domain='您的_域';
//用于图像
var imgs=document.getElementsByTagName(“img”);
对于(变量i=0;i
编辑:

对于div,将以下代码添加到上面:

// For CSS files
var styleProp = 'background-image';
var divs = document.getElementsByTagName("div");
for (var i = 0; i < divs.length; i++) {
    if(divs[i].currentStyle) {
        divs[i].style['styleProp'] = domain + divs[i].currentStyle[styleProp];
    } else if (window.getComputedStyle) {
        divs[i].style['styleProp'] = domain + document.defaultView.getComputedStyle(divs[i],null)
                                .getPropertyValue(styleProp);
    }
}
//用于CSS文件
var styleProp='背景图像';
var divs=document.getElementsByTagName(“div”);
对于(变量i=0;i

您可以获取帮助表单。

您尝试了哪些代码?实际上html页面是XML格式的,因此我需要解析和创建html文件。嗨,内容来自此url:并且还包含背景图像,所有div是否都有属性
背景图像
?但我建议您在编写
HTML
代码时给出绝对路径,因为不同的浏览器在呈现元素后的行为不同。
// For CSS files
var styleProp = 'background-image';
var divs = document.getElementsByTagName("div");
for (var i = 0; i < divs.length; i++) {
    if(divs[i].currentStyle) {
        divs[i].style['styleProp'] = domain + divs[i].currentStyle[styleProp];
    } else if (window.getComputedStyle) {
        divs[i].style['styleProp'] = domain + document.defaultView.getComputedStyle(divs[i],null)
                                .getPropertyValue(styleProp);
    }
}