2014-02-24 46 views
0

我正在使用這個jquery腳本導入部分wikipedia文章,但我遇到了一個問題,當這個腳本將一個圖片標籤放在一起時,它會去掉「http:」(或相反,它並不在第一位?)來自src屬性。我如何確保每個img標籤都有http:在src屬性的開頭,如果它已經存在,就不添加另一個標籤?確保src屬性具有http:

這裏是我使用的是什麼:

https://gist.github.com/steren/704540

具體這是在添加圖像(但保留了 「http:」):

//get images of right side table 
var rightTableImages = content.find('table a.image img');   
//append first image to main container 
wikiContainer.append($(rightTableImages).first().removeAttr('srcset').removeAttr('height').removeAttr('width').addClass("imageForArticle").wrap('<div class="wikipediaLogo"></div>').parent()); 

我曾嘗試添加類通過將.addClass("imageForArticle")添加到上述圖像中,然後嘗試此操作:

$('. imageForArticle').attr('src', function(index, src) { 
return 'http:' + src; 
}); 

但是當我這樣做時,如果一個頁面中有多個文章,當我重新加載頁面時,它有時會添加一個額外的http:給另一個。

+0

?像// example.com /這樣的網址[非常有效](https://en.wikipedia.org/wiki/Protocol_relative_URL)。 – svick

回答

2

嘗試

$('. imageForArticle').attr('src', function (index, src) { 
    return (src.indexOf('http') == 0) ? src : 'http:' + src; 
}); 

如果 src.indexOf('http') == 0開頭爲http比返回相同

其他添加http:


或者

$('. imageForArticle').not('[src^="http"]').attr('src', function (index, src) { 
    return 'http:' + src; 
}); 

排除從http $('. imageForArticle').not('[src^="http"]')

+0

克拉'^'是否以「開始」?謝謝你,這是一種享受。 – user2219915

+0

@ user2219915是閱讀[屬性以選擇器開始^](https://api.jquery.com/attribute-starts-with-selector/) –

+0

相對URL如'../ image.jpg'怎麼樣?你的代碼會改變爲'http:../ image.jpg',這是不對的。 – svick

0

src strating結果試試這個:爲什麼你需要一個

$('. imageForArticle').attr('src', function (index, src) { 
    return (src.indexOf('http') < 0) ? src : 'http:' + src; 
});