Хорошо, этот вопрос stackoverflow спросил, как позволить вашему расширению общаться с DOM.Существует множество способов, один из которых - через chrome.tabs.executeScript, а другой - через передачу сообщений, как я объяснил в этом вопросе.
Возвращаясь к вашему вопросу, вы можете использовать XPath для поиска в DOM.Это довольно мощный.Например, вы сказали, что хотите найти <div id="hello">
, вы можете сделать это следующим образом:
var nodes = document.evaluate("//div[@id='hello']", document, null,
XPathResult.ANY_TYPE, null)
var resultNode = nodes.iterateNext()
if (resultNode) {
// Found the first node. Output its contents.
alert(resultNode.innerHTML);
}
Теперь для вашего второго примера то же самое .. <a href="http://bananas.com">I am married to a banana</a>
var nodes = document.evaluate("//a[@href='http://bananas.com']/text()[contains(.,'married')]",
document, null,
XPathResult.ANY_TYPE, null)
var resultNode = nodes.iterateNext()
if (resultNode) {
// Found the first node. Output its contents.
alert('This guy is weird');
}
Ну, вы могли бы использовать XPath , который отлично работает в Chrome, и вы можете сделать свой запрос простым, например, найти нужные вам узлы или даже усложнить детализацию.Вы можете запросить любой узел, а затем выполнить постобработку, если хотите.
Надеюсь, что это помогло.Помните, что все это должно быть в скрипте содержимого в расширении Chrome.И если вы хотите, чтобы ваш добавочный номер сообщал об этом, вы можете использовать Передача сообщений , как я объяснил в другом посте.Таким образом, в основном в вашем popup.html вы отправляете запрос к скрипту содержимого, чтобы найти ваш текст.Ваш контент-скрипт отправит ответ от своего обратного вызова.Чтобы отправить запрос, вы должны использовать chrome.tabs.sendRequest и в скрипте содержимого. Вы слушаете этот запрос и обрабатываете его.Как я объяснил в другом вопросе stackoverflow .