Я пытаюсь написать простое расширение Chrome, которое проверяет, существует ли определенное слово на отображаемом в данный момент веб-сайте.
У меня проблемы с файлами js. Я конечно уверен, что они не работают так, как они должны, но, что еще хуже, нет возможности проверить это. Кнопка расширения всегда гласит, что слова не существует на веб-сайте (здесь для упрощения я использую «Википедию» и проверяю его на веб-сайте Википедии, но это может быть что угодно.
content.js
chrome.runtime.onMessage.addListener(
function (request, sender, sendResponse) {
if (request.action === "checkForWord") {
checkForWord(request, sender, sendResponse);
return true;
}
}
);
function checkForWord(request, sender, sendResponse){
var scripts = document.getElementByTagName("*");
for (var i=0;i<scripts.length;i++) {
if (scripts[i].indexOf("Wikipedia")>-1){
return sendResponse(true);
}
}
return sendResponse(false);
}
popup.js
document.addEventListener("DOMContentLoaded", function(event) {
var resultsButton = document.getElementById("getResults");
resultsButton.onclick = getResults;
});
function getResults(){
chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) {
chrome.tabs.sendMessage(tabs[0].id, { action: "checkForWord" }, function (response) {
showResults(response);
});
});
}
function showResults(results) {
var resultsElement = document.getElementById("results");
resultsElement.innerText = results ? "This page contains red flag keywords" : "This page does NOT contain red flag keywords";
}
popup.html
<!doctype html>
<html>
<head>
<title>RFchecker</title>
<script src="popup.js"></script>
</head>
<body style="background-color:#0F0;width:160px;height:90px;">
<div id="status">
<button id="getResults">Get Results</button>
<h4 id="results"></h4>
</div>
</body>
</html>
Что я ожидаю увидеть, так это то, что где-то на сайте есть слово из Википедии: «Эта страница содержит ключевые слова красного флага», в противном случае «Эта страница НЕ содержит ключевых слов красного флага».
Спасибо за любую помощь!