Register a content script in the manifest file bei "run_at": "document_idle"
(das ist die Standardeinstellung) und setzen Sie den Code in der Content-Skript-Datei nicht . Dann wird das Skript ausgeführt, wenn die Seite fertig ist.
Wenn Sie von der Hintergrundseite erkennen möchten, ob eine Seite vollständig geladen ist, verwenden Sie das Ereignis chrome.webNavigation.onCompleted
und führen Sie beliebige Aktionen aus, z. B. das Aufrufen von chrome.tabs.executeScript
zum Ausführen eines Inhaltsskripts. Diese Methode könnte gegenüber der vorherigen Methode nützlich sein, wenn die Liste der URLs dynamisch ist oder wenn die URL-Muster nicht mit der Syntax match pattern beschrieben werden können.
chrome.webNavigation.onCompleted.addListener(function(details) {
chrome.tabs.executeScript(details.tabId, {
code: ' if (document.body.innerText.indexOf("Cat") !=-1) {' +
' alert("Cat not found!");' +
' }'
});
}, {
url: [{
// Runs on example.com, example.net, but also example.foo.com
hostContains: '.example.'
}],
});
Die webNavigation
und Host-Berechtigungen haben in manifest.json
, zum Beispiel festgelegt werden:
{
"name": "Test",
"version": "1.0",
"background": { "scripts": ["background.js"] },
"permissions": [ "webNavigation", "*://*/*" ],
"manifest_version": 2
}
Dank Rob W, aber ich habe eine Menge Code nach den Check-Anweisungen, kann ich es nicht geschrieben nach "code: '" kann ich eine Funktion aufrufen? – JustMe
@ user1291538 Sie können es in eine separate Datei innerhalb der Erweiterung einfügen, und verwenden Sie 'file: 'nameoffile.js'' anstelle von'' code ':' ... ''- Siehe auch die [verlinkte Dokumentation] (http: //code.google.com/chrome/extensions/tabs.html#method-executeScript). –
@Xan, es ist "manifest_version": 2. Nicht 1. – Dudi