Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Простой, ламерский вопрос. (https://javascript.ru/forum/misc/27098-prostojj-lamerskijj-vopros.html)

bioz00 02.04.2012 17:17

Простой, ламерский вопрос.
 
Нужно найти на странице все ссылки типа:
http://*.png
и обернуть вот таким образом:
<img src="http://*.png">
Как проще?

nerv_ 02.04.2012 17:31

bioz00, пример страницы.

p.s.: для форматирования кода на форуме существуют специальные теги.

bioz00 02.04.2012 17:40

Цитата:

пример страницы.
Разве это имеет значение?

Хотелось бы чтоб скрипт можно было юзать как универсальный.
Тупо загружать картинки по ссылкам на эту же страницу.

Кстати да, блин, нужна ведь проверка, не обернут ли http://*.png img'ом изначально. Хотя, впрочем это не обязательно :)

dmitriymar 02.04.2012 17:43

не проще ли это сразу на сервере делать?

bioz00 02.04.2012 17:47

dmitriymar, на сервере это сделать не получится, поскольку частенько нужна эта функция на сайтах, влацельцем которых я не являюсь.

bioz00 02.04.2012 18:23

Maxmaxmахimus, лучше искать их, как просто строки, по шаблону "http://*.png".
А как заменить <a> на <img> потом сам разберусь.

Aetae 02.04.2012 19:19

<a href="http://media.cyberduck.ch/img/cyberduck.icon.png">лого</a>
<script>
(function(){
var a = document.getElementsByTagName('a'), i = a.length;
while(i--) if( /\.png$/.test(a[i].href) ) a[i].innerHTML = '<img title="' + (a[i].textContent||a[i].innerText) + '" src="' + a[i].href + '">';
})()
</script>

nerv_ 02.04.2012 19:21

Цитата:

Сообщение от bioz00
Разве это имеет значение?

Зачем парсить всю страницу, если можно обойтись ее куском?
var text = 'Нужно найти на странице все ссылки типа: [url]http://*.png[/url] и обернуть вот таким образом:';

alert(
	text.replace( /\bhttp:\/\/.+?\.png\b/gim, '<img src="$&">' )
);

bioz00 02.04.2012 19:47

nerv_,
Просто мне не для какой-то конкретной страницы. И поэтому я не могу знать заранее ее содержание. Поэтому без парсера никак.

За пример спасибо, дальше вообщем-то сам разберусь.

Aetae, грамотно, спасибо.


Часовой пояс GMT +3, время: 19:29.