Nehmen wir an, ich möchte den Inhalt der ausgewählten Registerkarte in Chrome-Erweiterung ändern. Ich möchte jedes Auftreten von come
durch eine fly
ersetzen.Tauschen Sie einige Wörter im Inhalt der ausgewählten Registerkarte in Chrom
Wie kann ich die Wörter dynamisch ändern?
Bis jetzt erreiche ich die document
und replace
alles Vorkommen des Wortes come
aber konnte den aktualisierten Inhalt nicht in die ausgewählte Registerkarte schreiben.
Was ich schrieb, ist;
chrome.tabs.getSelected(null,function(tab) {
updatedContent = document.replace(/come, 'fly');
});
Wie kann ich das erreichen?
Edit: Mein Fehler, document.replace funktioniert nicht gut.
Edit2: Mit dem Vorschlag von @Haibara Ai ich bearbeitet als;
chrome.tabs.query({active: true, currentWindow: true} ,function (tabs) {
chrome.tabs.executeScript(tabs[0].id, { code: 'document.body.outerHTML.replace(/come/g, "fly")' });
});
Aber nichts ist passiert. Es gibt auch keinen Fehler.
vielen Dank, aber wenn ich versuche, Ihren Code innerhalb 'window.onload = function() {}' es hat nicht funktioniert. Und gab mir diesen Fehler 'Uncaught SyntaxError: Unexpected identifier' bei Zeile' (Tabs) => chrome.tabs.executeScript (Tabs [0] .id, {code: 'document.replace (/ come,' fly ');' }); ' – user6468132
@ user6468132, das ist nur ein Beispielcode, müssten Sie Ihre eigene' replace' Methode verwenden, und vergessen Sie nicht, mit Zitat und Berechtigungen Problem umzugehen. –
Wenn ich das selbe in der Konsole ausführe, die 'document.body.outerHTML.replace (/ come/g," fly ")' ist, wird das outerHTML geändert, aber nichts ändert sich auf der Seite. Sie sollte hinzugefügt werden, damit diese Änderungen angezeigt werden auf der Seite? – user6468132