2012-06-02 2 views
0

Работа над сценарием Greasemonkey, который примет определенное действие, если изображение, загруженное на веб-страницу, является gif или jpg. Код со страницы выглядит следующим образом:Определить расширение файла динамического изображения 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

Ну, действительно, этот подход для меня совершенно новый. Единственный способ, которым я знаю, чтобы получить расширение, - это фотография, которую я знаю, путь. Поскольку у этого изображения нет идентификатора или имени, и я не знаю, каким будет точный путь, я на самом деле довольно тупик и не знаю, с чего начать, или как подойти к нему ... – 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: Как это так? Обратите внимание, что регулярные выражения отключают ** последнее ** расширение - точно так же, как ОС. –

+0

О, не вижу '' 'в конце ... мой плохой. –

Смежные вопросы