2013-06-18 93 views
-5

我想用javascript替換目錄鏈接。例如,我想將http://mysite.com/cdn/backup/Pic.jpg更改爲http://mysite.com/newcdn/folder/Pic.jpg用JavaScript替換鏈接

我的代碼:

<!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

所以,這個代碼不是爲我工作。如果腳本中有任何錯誤,請糾正。提前致謝。

+0

你是做什麼用 'N'。 –

+0

你是否試圖改變圖像的src更改其文件夾? –

+0

你的變量「str」是一個局部變量,你將不得不通過id/class/DOM/whatever得到img元素......然後改變src屬性。 –

回答

0

應該

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

只有在OP想要替換每一個事件時。但是在給出的例子中,代碼很好。 –

+0

yup!例子是JPG。但我想改變一切。比如css,js,vids,pics,htmls – BPP

2

如果你試圖改變<img>標籤的src(這就是我假設,閱讀的問題),那麼你需要做這樣的事情:

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

window.onload = changeSrc; 

從我讀您要更改所有src S上的評論,這樣的代碼將是這樣的:

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; 
+0

我想改變一切。像CSS,JS,IMG,視頻鏈接等... – BPP

+0

查看更新! –

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/'); 
} 
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/"); 
    }); 
}); 
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) 

}