使用JavaScript链接替换

时间:2013-06-18 11:39:53

标签: javascript html

我想用javascript替换目录链接。例如,我想将http://mysite.com/cdn/backup/Pic.jpg更改为http://mysite.com/newcdn/folder/Pic.jpg

我的代码:

<!DOCTYPE html>
<html>
<body>

<img src="http://mysite.com/cdn/backup/Pic.jpg" />
<iframe src="http://mysite.com/cdn/backup/Vid.flv"></iframe>

<script>
var str="cdn/backup/";
var n=str.replace("cdn/backup/","newcdn/folder/");
</script>

</body>
</html>

使用本教程:http://www.w3schools.com/jsref/jsref_replace.asp

所以,这个代码对我不起作用。如果脚本中有任何错误,请更正。提前谢谢。

5 个答案:

答案 0 :(得分:2)

如果您正在尝试更改<img>标记的src(这是我想要的,请阅读问题),那么您需要执行以下操作:

function changeSrc() {
    var img = document.getElementsByTagName('img')[0];
    img.src = img.src.replace('cdn/backup/', 'newcdn/folder/');
}

window.onload = changeSrc;

从我读过的评论中你想要更改所有src,所以代码看起来像这样:

function changeAllSrcs() {
    var imgs = document.getElementsByTagName('img');
    for (var i = 0; i < imgs.length; i++) {
        var img = imgs[i];
        img.src = img.src.replace('cdn/backup/', 'newcdn/folder/');
    }
}

window.onload = changeAllSrcs;

我不知道这是否是一个很好的方法,但如果你想用链接替换所有出现的事情那么你应该做这样的事情(我不喜欢这个解决方案,它不是完全的安全,无论如何它应该做的工作):

function replaceLinks() {
    var bodyHtml = document.body.innerHTML,
        replaced = bodyHtml.replace(/cdn\/backup/g, 'newcdn/folder/');
    document.body.innerHTML = replaced;
}
window.onload = replaceLinks;

答案 1 :(得分:1)

访问元素并替换src属性。

更改所有img元素的src:

var img = document.getElementsByTagName('img');
length = img.length;

while(length--) {
    img[length].src = img[length].src.replace('cdn/backup/', 'newcdn/folder/');
}

答案 2 :(得分:1)

假设你可以使用JQuery,你可以这样做:

$.each($("img"),function(key,value){
    value.src = value.src.replace("cdn/backup/","newcdn/folder/");
});

如果确实有必要,可以为iFrame做同样的事情:

    $.each($("iframe"),function(key,value){
   value.src = value.src.replace("cdn/backup/","newcdn/folder/");
});

您很可能需要在文档加载时执行此操作。所以

$(document).ready(function(){
    $.each($("img"),function(key,value){
        value.src = value.src.replace("cdn/backup/","newcdn/folder/");
    });
//AND/OR
    $.each($("iframe"),function(key,value){
        value.src = value.src.replace("cdn/backup/","newcdn/folder/");
    });
});

答案 3 :(得分:0)

应该是

var n=str.replace(/cdn\/backup/ig,"newcdn/folder/");

答案 4 :(得分:0)

此代码不符合您的想法。 这个片段     var n = str.replace(“Microsoft”,“W3Schools”); 在字符串str中替换Microsoft与W3Schools的单词。您希望在链接文本中进行此替换。您需要获取链接文本并替换它。一个想法是获取DOM中的所有元素并替换它们的src属性。

var elements=document.getElementsByTagName("*")
for (var i=0, max=all.length; i < max; i++) {
 // Do something with the element here
     str = elements[i].getAttribute("src")
     var newstr=str.replace("cdn/backup/","newcdn/folder/");
     elements[i].setAttribute("src",newstr)

}