Изменение всех ссылок с Greasemonkey - PullRequest
3 голосов
/ 19 июля 2010

Я хочу изменить страницу с сайта, который ставит перед всеми ее ссылками префикс "http://linkblur.com/?". Я пробовал это:

links = getElementsByTagName('a');
for (l in links) {
    l.href = l.href.replace('http://linkblur.com/?','');
}

Но это не работает.

Ответы [ 2 ]

2 голосов
/ 19 июля 2010

Попробуйте:

var links = document.links;
var link;
for(var i=links.length-1; i >=0; i--){
  link = links[i];
  link.href = link.href.replace("http://linkblur.com/?", '');
}
2 голосов
/ 19 июля 2010

Вы для итератора перебираете все свойства вашего массива, которые будут не отдельными элементами, а 0, 1, 2, ..., n, length.

Вы хотите изменить свой итератор, и если вы хотите префикс ссылок, вы тоже делаете это неправильно.То, что вы сейчас делаете, заменит linkblur.com... пустой строкой, т.е. удалит linkblur из существующих ссылок.

var links = document.getElementsByTagName('a');
for (var i = 0; i < links.length; i++) {
    links[i].href = 'http://linkblur.com/?' + links[i].href;
}
...