Измените все ссылки с изображением на: javascript (alert (thehref)); - PullRequest
0 голосов
/ 13 сентября 2009

Измените все ссылки с изображением на: javascript (alert (thehref));

например.

<a href="/galleries/anna-leah-111827/image01.html"><img src="/source_galleries/anna-leah-111827/tn/01.jpg"></a>
<a href="/galleries/23435/image01.html">ssss</a>

становится

<a href="/galleries/anna-leah-111827/image01.html" onclick="alert(this.href)"><img src="/source_galleries/anna-leah-111827/tn/01.jpg"></a>
<a href="/galleries/23435/image01.html">ssss</a>

Как я могу сделать это как букмарклет, который использует внешний файл JavaScript.

Я пытался весь день безрезультатно.

Ответы [ 2 ]

4 голосов
/ 13 сентября 2009
for (var i= document.links.length; i-->0;) {
    if (document.links[i].getElementsByTagName('img').length!=0) {
        document.links[i].onclick= function() {
            alert(this.href);
        };
    }
}

закодировано в букмарклет:

javascript:for%28i%3Ddocument.links.length%3Bi--%3E0%3B%29if%28document.links%5Bi%5D.getElementsByTagName%28%27img%27%29.length%21%3D0%29document.links%5Bi%5D.onclick%3Dfunction%28%29%7Balert%28this.href%29%3B%7D%3Bvoid%280%29%3B
1 голос
/ 13 сентября 2009

Я бы включил jQuery во внешний файл, использовал режим noconflict и сделал бы что-то вроде этого:

$('a:has(img)').bind('click', function(event){
    event.preventDefault();
    alert($(this).children('img').get(0).attr('src'));
}
...