Я бы хотел ускорить разработку расширений, изменив существующее расширение.У меня нет опыта работы с JavaScript, но у меня есть опыт работы с C, C ++, Java и Python.Я выбрал расширение Regular Expression Search от bizsimon.Вот код JavaScript скрипта содержимого, который я пытаюсь понять.
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) { sendResponse(chrome_regex_search(request.exp)); });
function chrome_regex_search(exp) {
var tw=document.createTreeWalker(document.getElementsByTagName("body")[0], NodeFilter.SHOW_TEXT, null, false);
while (node = tw.nextNode()) {
node.parentNode.innerHTML=node.parentNode.innerHTML.replace(/<font class="chrome_search_highlight"[^>]*>(.+)<\/font>/igm, '$1');
}
try {
var pattern=eval("/(>[^<]*)("+exp+")([^<]*<)/igm");
var tw=document.createTreeWalker(document.getElementsByTagName("body")[0], NodeFilter.SHOW_TEXT, null, false);
while(node=tw.nextNode()) {
node.parentNode.innerHTML=node.parentNode.innerHTML.replace(pattern, '$1<font class="chrome_search_highlight" style="background: yellow">$2</font>$3');
}
return {"count": document.getElementsByClassName("chrome_search_highlight").length};
} catch(e) {
return {"count": 0};
}
}
И вот мои вопросы:
Что делает этот код?
node.parentNode.innerHTML = node.parentNode.innerHTML.replace (/]*>(.+) / igm, '$ 1');
- Мне бы хотелосьдобавить кнопки навигации, которые позволяют пользователю переходить от одного результата поиска к другому.Какие изменения требуются в скрипте?Я предполагаю, что теперь мне нужно будет сохранить состояние, которое запоминает, какой результат поиска в настоящее время посещается.Как заставить браузер переходить с одного результата поиска на другой?
- Буду очень признателен за любые полезные комментарии, которые помогут понять код или даже прохождение кода.