Как использовать надстройку для создания правила поиска и замены текста на сайте? - PullRequest
0 голосов
/ 29 июня 2011

У меня в Firefox 5 установлены как стильные, так и обезжиренные обезьяны. Я хочу знать, имеет ли какой-либо из них или другое дополнение возможность находить текст и заменять его другим, или, что еще лучше, найти div по его идентификатору и замена диапазона внутри другой строкой текста.


Из комментария ОП:

У меня есть веб-сайт с div ( id = siteLinkList ), с ul и несколькими li s внутри div.

Каждый li имеет a с текстом, который необходимо заменить. Я хочу, чтобы скрипт искал div, а затем находил и заменял текст внутри этого div.

Вот что у меня есть:

var els = document.getElementsByTagName("*"); 

for(var i = 0, l = els.length; i < l; i++)
{
    var el = els[i]; 
    el.innerHTML = el.innerHTML.replace(/EGN1935: 5091, Summer B 2011/gi, 'Success'); 
    el.innerHTML = el.innerHTML.replace(/EGN1935: 5088, Summer B 2011/gi, 'Chemistry');
}    

Скрипт работает, но я боюсь, что он задерживает время загрузки.

Ответы [ 2 ]

1 голос
/ 29 июня 2011

Да, Greasemonkey может сделать это.(Даже Stylish может сделать это ограниченным образом с помощью CSS content.)

Должны быть миллионы скриптов, которые делают это на userscripts.org .

См.также, связанные вопросы SO, такие как:

Вам необходимо опубликовать подробности того, что страница должна / должна быть, до и после.


Более конкретноответ на основе обновлений от OP:

Ускорьте свой код, сосредоточившись на видах элементов, которые вы хотите, AMAP, вместо выборки каждого элемента.

Код, подобный так, долженРабота.:

var TargLinks       = document.querySelectorAll ('div#siteLinkList ul li a');
for (var J = TargLinks.length - 1;  J >= 0;  --J)
{
    /*--- Does "EGN1935: 5088, Summer B 2011" only appear in the text of 
        the link or in the href?
        The first block will be more efficient if it works, otherwise use 
        the 2nd block.
    */
    var el          = TargLinks[J];
    el.textContent  = el.textContent.replace (/EGN1935: 5091, Summer B 2011/gi, 'Success'); 
    el.textContent  = el.textContent.replace (/EGN1935: 5088, Summer B 2011/gi, 'Chemistry');
    /* Only use this block if the first block did not work.
    el.innerHTML    = el.innerHTML.replace(/EGN1935: 5091, Summer B 2011/gi, 'Success'); 
    el.innerHTML    = el.innerHTML.replace(/EGN1935: 5088, Summer B 2011/gi, 'Chemistry');
    */
}
0 голосов
/ 29 июня 2011

Вы можете сделать это с Firebug - http://getfirebug.com/. После того, как вы установите его, активируйте его, щелкнув значок поиска ошибок на странице, которую вы хотите редактировать. Появится вид дерева HTML-документа, и вы можете щелкнуть стрелки, чтобы перейти вниз. Кроме того, вы можете использовать значок указателя внутри Firebug, чтобы выбрать любой HTML-элемент на странице (например, div с определенным идентификатором).

Выбрав элемент, вы можете выбрать содержащийся в нем текст и редактировать его, как вам нравится.

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

...