Auf Chrome-Erweiterung nach einem Ajax-Aufruf sollte es in Absätzen auf divs mit ID #Lead und #detail suchen. Wenn es einen Text findet, um eine CSS-Klasse hinzuzufügen.Chrome Erweiterung läuft nicht in divs jquery Code
sieht Ihr Code wie folgt:
function retrieveBlicCheckedFacts(tabUrl){
var data = {currentUrl: tabUrl};
$.support.cors = true;
$.ajax({
type: "POST",
url: API_URL_FIND,
crossDomain: true,
data: JSON.stringify(data),
contentType: "application/json",
success: function(respData){
console.log(respData); //here data are printed correctly
$("#lead, #detail").find('p').each(function() {
for (var count = 0; count < respData.length; count++) {
var findCheckedFact = respData[count]["text"];
var str = $(this).text();
console.log(str);
if (str.indexOf(findCheckedFact) >= 0) {
$(this).html(
$(this).html().replace(findCheckedFact, "<span class='red'> $& </span>")
);
}
}
});
},
error: function(err){
console.log(JSON.stringify(err));
}
});
}
respData eine Liste ist wie folgt:
[{"text":"test" , "type":"example" ,"_id": {"$oid": "570e686951d720724aa06fe7"}} ,{"text":"test" , "type":"example", "_id": {"$oid": "570e686951d720724aa06fe8"}} ]
Wenn ich debuggen es alles gut geht, außer wenn es um den Absätzen kommt, es geht nicht hinein, Was kann der Grund sein? Auf Manifest js habe ich bereits Berechtigungen für die ausgewählte URL hinzugefügt, für die ich diese Änderungen vornehmen möchte. Bitte helfen Sie mir
Edit: Code oben ist in checker.js
. Hier sind ein paar Code von meinem manifest.json, http://*www.mydomain.rs/
ist meine gewünschte Domäne, wo ich diese Änderungen vornehmen möchte.
"background": {
"persistent": false,
"scripts": [
"js/jquery-1.12.0.min.js",
"background.js",
"checker.js"
],
"css": ["custom-css.css"]
},
"permissions": [
"notifications",
"contextMenus",
"storage",
"tabs",
"http://*www.mydomain.rs/"
],
Webseite Code wie folgt aussieht etwas:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<div id="trunk">
<div id="main">
<div id="lead"> Lorem Ipsum is simply dummy text </div>
<div id="detail" class="detail intext" itemprop="articleBody">
<p> What is Lorem Ipsum</p>
<p> Why do we use it?</p>
<p> Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text. </p>
</div>
</div>
</div>
</body>
</html>
Wo haben Sie den obigen Code eingegeben? Inhaltsskripte oder Hintergrundseite? Wo ist "führend"? Aktuelle Webseite oder Popup-Seite? Geben Sie weitere Details an, wie Ihr Manifest.json' –
wo ist dein Ajax Anruf? Hast du es in die Hintergrundseite eingefügt? Wenn dies der Fall ist, dann kann es nicht die # # führen, da die Hintergrundseite und die aktuelle Webseite in einem anderen Kontext leben, werden sie eine Nachrichtenübergabe benötigen, um zu kommunizieren. –
@HaibaraAi Ich habe meine Frage bearbeitet, Lead und Detail Divs sind innerhalb der Seite, die im Browser geladen ist. Ich füge auch etwas Code von meinem manifest.json hinzu. –