Самый краткий способ сделать замену текста на веб-странице? (используя GreaseMonkey) - PullRequest
1 голос
/ 01 марта 2010

(Да, да, я не должен использовать регулярные выражения. Альтернативные решения приветствуются!)

Я пытаюсь настроить свой вид веб-страницы, которую я часто использую, используя GreaseMonkey для фильтрации вещей, которые я не хочу видеть.

В основном, страницы содержат много ссылок, которые выглядят так:

<a class="foo" href="blah">Text</a>

и я бы предпочел, чтобы они выглядели так:

Text<a class="foo" href="blah">[?]</a>

чтобы я случайно перестал нажимать на ссылки.

К сожалению, мои знания javascript ничтожны, и я не знаю, как действовать.

1 Ответ

2 голосов
/ 01 марта 2010

Вот что попробовать

var links = document.links;
//or
//document.getElementsByTagName('a');

for( var i = 0, l = links.length; i < l; i++ ) {
    //ignore links that aren't of class 'foo'
    if( links[i].className != 'foo' ) {
        continue;
    }
    var linkText = links[i].innerHTML;
    links[i].innerHTML = '[?]';
    var textEl = document.createTextNode( linkText );
    links[i].parentNode.insertBefore( textEl, links[i] );
}

Делает странные вещи с ссылками на изображения, но вам может быть все равно, является ли ваша страница просто списком текстовых ссылок.
В противном случае вам, возможно, придется проверить, что вы получите, прочитав ссылку innerHTML, и действовать соответственно

...