Как использовать надстройку для создания правила поиска и замены текста на сайте?
В Firefox 5 у меня установлены как стильные, так и обезжиренные обезьяны. Я хочу знать, имеет ли какой-либо из них или другое дополнение возможность находить текст и заменять его чем-то другим, или, что еще лучше, найти div по его идентификатору и заменить span внутри с другой строкой текста.
Из комментария ОП:
У меня есть сайт с div
(id = siteLinkList), с ul
и несколько li
внутри див.
каждый 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 ответа
Да, Greasemonkey может сделать это. (Даже Стильный может сделать это ограниченным образом с помощью CSS content
.)
Там должно быть миллионы сценариев, которые делают это на http://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');
*/
}
Вы можете сделать это с Firebug - http://getfirebug.com/. После того, как вы установите его, активируйте его, нажав на значок ошибки на странице, которую вы хотите редактировать. Появится вид дерева HTML-документа, и вы можете щелкнуть стрелки, чтобы перейти вниз. Кроме того, вы можете использовать значок указателя внутри Firebug, чтобы выбрать любой элемент HTML на странице (например, div с определенным идентификатором).
После того, как вы выбрали элемент, вы можете выбрать текст, который он содержит, и редактировать его, как вам нравится.
Вы можете редактировать множество других вещей с помощью этого плагина, но важно знать, что после перезагрузки страницы ваши изменения исчезнут.