function doSomething() {
alert("I was clicked!");
}
chrome.pageAction.onClicked.addListener(doSomething);
Das funktioniert. Jetzt in meiner doSomething Funktion Ich möchte einige Daten auf der aktuellen Seite lesen. Es wird für mich viel einfacher sein, jquery zum Lesen der Daten zu verwenden, sodass ich problemlos genau auf die gewünschten Daten abzielen kann. Wie kann ich jquery (vorzugsweise von Googles CDN bereitgestellt) integrieren, damit es für meine zugänglich ist doSomething Funktion?
Jaydeep Solanki
Das "background" Spezifikation ein manifest.json angeben soll jquery.js damit es vorher geladen wird background.js:
Dies sollte die Arbeit erledigen.
Denken Sie daran, dass die js-Dateien in der angegebenen Reihenfolge geladen werden.
testen, ob jquery geladen ist.
in background.js
if (jQuery) {
// jQuery loaded
} else {
// jQuery not loaded
}
stackoverflow.com/questions/27542186/… Können Sie mir bitte sagen, was ich falsch mache?
– Tote Kuh
18. Dezember 2014 um 8:39 Uhr
Hier erfahren Sie, wie Sie JQuery mit Ihrem Hintergrundskript laden, aber beachten Sie die anderen Antworten … Sie können nicht auf das DOM der aktiven Webseite zugreifen. Sie können auf $(document) zugreifen, aber das ist die Hintergrund-HTML-Seite.
– PMorganCA
15. April 2016 um 20:14 Uhr
Wenn ich Ihren Test in meinem content_script (nicht im Hintergrund) verwendet habe, würde ich eine Ausnahme erhalten, die besagt, dass jQuery nicht definiert ist. Ich musste umsteigen if (typeof jQuery !== 'undefined') um tatsächlich zu prüfen, ob jQuery definiert wurde.
– Chip Thien
28. Dezember 2016 um 19:29 Uhr
Warum steht deine Antwort nicht oben?
– Anwar Hossain
10. August 2019 um 16:20 Uhr
Das Lustige ist, dass ich auch jquery in background.js verwendet habe, aber $.get() scheint nicht wie erwartet als content.js zu funktionieren
– Gumuruh
17. September 2019 um 7:30 Uhr
Benutzer
Ich weiß nicht, ob dies der ideale Weg ist, aber ich konnte es mithilfe dieser Frage zum Laufen bringen: Google Chrome Extensions: How to include jQuery in programatically injection content script?.
Anscheinend kann eine “Hintergrund”-Javascript-Seite nicht auf das DOM einer Webseite im Browser zugreifen, sodass das Laden von jquery im Hintergrundskript nicht wirklich sinnvoll ist. Stattdessen habe ich das Hintergrundskript programmgesteuert injizieren die jQuery-Bibliothek und dann das Inhaltsskript in die aktuelle Webseite. Das Inhaltsskript (im Gegensatz zum Hintergrundskript) kann Zugriff auf Informationen auf der Webseite.
var text = jQuery('h1').text();
alert('inside content! ' + text);
Sie können JQuery weiterhin für Ajax-Aufrufe usw. verwenden. Es ist nicht unbedingt nutzlos, JQuery für background.js zu verwenden
– Nullschreiber
7. Mai 2015 um 19:34 Uhr
Mein Verständnis ist, dass es nicht notwendig ist, background.js zu verwenden. Sie können Ihren Code stattdessen in popup.js haben. Daher müssen Sie auch nichts in die Manifestdatei aufnehmen.
Ich würde vorschlagen, das jQuery JS und Ihre popup.js in Ihre popup.html aufzunehmen:
Dann sollten Sie in popup.js auf jQuery zugreifen können, sodass Ihr eventHandler so aussehen würde:
$(document).ready(function(){
$('#anyelement').on('click', doSomething);
function doSomething(){
alert ('do something');
};
})
Ich denke nicht, warum Sie CDN für jQuery wollen, alle Dateien werden auf dem Computer des Benutzers gehostet.
Ich hoffe, es hilft, Rob
guter Punkt, kein CDN zu benötigen. Was ist popup.html? Ich weiß nicht, was das ist. Zur Verdeutlichung wird der Onclick ausgelöst, wenn der Benutzer auf das Symbol der Seitenaktion klickt.
– Benutzer
25. Oktober 2012 um 9:07 Uhr
popup.html ist der HTML-Inhalt, der „auftaucht“, wenn Sie in Chrome auf Ihr Erweiterungssymbol klicken.
– robertp
25. Oktober 2012 um 9:19 Uhr
Ok, dann versuchen Sie die Lösung von @Archer oben, das könnte für Sie besser sein.
– robertp
25. Oktober 2012 um 9:33 Uhr
Dies ist in der Chrome-Erweiterung nicht zulässig.
– Schiwa
14. Juli 2021 um 9:19 Uhr
Stellen Sie in der Manifestdatei sicher, dass Sie auf Ihre lokale jquery.js-Datei (wie auch immer sie heißt) in der content_scripts Block:
"content_scripts": [{
"js": ["jquery.js"]
}]
Dadurch wird sichergestellt, dass es in die crx-Datei eingebettet und für Ihre anderen Skripts zugänglich ist.
12277700cookie-checkWie verwende ich jquery in der Google Chrome-Erweiterungsseitenaktion background.js?yes