2012-06-02 42 views
0

使用Greasemonkey腳本時,如果加載到網頁上的圖像是gifjpg,將採取特定操作。從頁面的代碼如下:確定動態圖像src的文件擴展名

<div id="current_photo">  
    <div style="text-align:center;"> 
     <img src="[url]/[random numbers].gif/jpg" alt="" style="[styles]"> 
    </div> 
</div> 

URL的開始將是獨一無二的,因爲只有一個與URL頁面上的圖像。需要一種方法來拉動這條道路並從中獲得延伸。

+3

你嘗試過什麼,以及我們如何能夠幫助你解決問題除了完全編碼它適合你? – Blender

+0

嗯,真的這種方法對我來說是全新的。我知道獲得擴展名的唯一方法是關閉我知道路徑的照片。由於此圖片沒有ID或名稱,我不知道確切的路徑將是什麼,我實際上很難過,不知道從哪裏開始,或者如何接近它...... – sotI

回答

0

爲圖片標籤添加id =「something」。然後是這樣的:

var path = document.getElementById('something').src; 
var extidx = path.lastIndexOf('.'); 
var extension = path.substr(extidx+1); 
+2

如果這是我的網站,我肯定會這樣做。但我正在爲別人的網站開發一個項目greasemonkey腳本。 – sotI

2

問題中的HTML格式不正確。這真的是一個精確的片段嗎?鏈接到目標頁面。

無論如何,這樣的代碼應該工作:

var payloadImage = document.querySelector ("#current_photo div img"); 

if (/\.gif$/i.test (payloadImage.src)) { 
    // DO GIF ACTION HERE 
} 
else if (/\.jpg$/i.test (payloadImage.src)) { 
    // DO JPG ACTION HERE 
} 
else { 
    // DO WHATEVER HERE 
} 
+0

如果它是'haha.gif.jpg'則會失敗。 (這是'jpg'圖片的有效文件名。) –

+0

@Derek:怎麼樣?請注意,正則表達式的關鍵字是** last **擴展名 - 就像操作系統一樣。 –

+0

哦,最後沒有看到'$'......我的不好。 –