2015-01-16 82 views
-2

我需要能夠更改img src的一小部分。當通過免費CMS服務上傳img時,保存imgs的路徑位於名爲www.domain.com的文件中,因此代碼將圖像顯示爲<img src="http://www.domain.com/images/image1.jpg,但圖像實際上保存在名爲「static」的免費cookie子域中。 所以我需要改變www靜態onload。替換img src的一部分

請幫助我已經嘗試了幾個PHP和jQuery腳本,沒有工作,我不明白爲什麼。

+10

你能顯示你的代碼嗎? –

+1

解釋更好,並向我們展示了一些代碼..只需要我們可以幫助的代碼。 –

+0

我正在使用免費的Cookie域來託管圖像和其他靜態文件,但是當通過CMS上傳圖片時,它們所在的文件夾名爲www。而不是靜態的。因此放置在頁面上的代碼將src顯示爲http:// www。而不是http:// static。 我需要一些可以改變www的東西。與靜態。我試過PHP和jQuery這樣的代碼的嚴重變體 '$('img')。each(function(){(this).attr(「src」,$(this).attr( 'src')。replace(「http://www.domain.com」,「http://static.domain.com」)); });' – Pezmo

回答

0

這將在每個圖片的網址更改「WWW」的第一次出現,以「靜態」:

var images=document.querySelectorAll('img'); 
[].forEach.call(images,function(img){ 
    img.src=img.src.replace('www','static'); 
}); 

您可以選擇比「IMG」更具體的搶正是你想要的元素:https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started/Selectors

+0

這是通過CMS上傳到網站的每個img。我嘗試過的一些腳本嘗試替換包括文件在內的所有src文件。這不是我想要的,因爲這些文件是通過CMS命名的。我只是想用靜態替換任何www。 – Pezmo

+0

此代碼將僅替換'www'部分。如果您想專門針對已上傳的圖片,則需要通過CSS選擇器或URL中的差異來區分它們。 –

+0

我剛剛嘗試過這段代碼,但似乎沒有做任何事情。 – Pezmo

0

你需要一些方法來識別從中提取src(它有一個id?)的圖像,但你可以簡單地執行字符串替換:

myImg.src = myImg.src.replace('domain', 'static.domain'); 
+0

圖像上沒有ID或類,但父Div上有。但有幾個ID的父母Divs – Pezmo

+0

好吧,我不知道如果我正朝着正確的方向前進,但在未能解釋我正在嘗試做什麼之後,我已經離開並做了一些更多的研究,並且我認爲我需要使用的是PHP DOM解析器。 我需要做的是 - 加載包含文件在幻燈片放映 查找所述文件 打破它來獲取文件名和擴展 設置新的路徑和文件名src屬性的每個img標籤&extension 用新文件覆蓋舊的包含文件 我已經得到了這個目前爲止,但從未使用過,所以有點丟失。 – Pezmo

+0

'$ doc = new DOMDocument(); $ doc-> loadHTMLFile('../ includes/slides.php'); \t foreach($ doc-> getElementsByTagName('img')as $ img){ \t \t $ img-> getAttribute('src'); \t \t \t \t \t $ \t img->的setAttribute( 'SRC', 'http://static.domain.com/images/ + $文件名'); \t \t $ doc-> saveHTMLFile('../ includes/slides.php'); \t退出; }' – Pezmo