Heim >Web-Frontend >js-Tutorial >Warum funktioniert meine Inline-Onclick-Funktion in einer Chrome/Firefox-Erweiterung nicht?
onclick oder Inline-Skript in der Erweiterung funktioniert nicht
Problem:
in der Erweiterung, Die onClick-Funktion führt ihre beabsichtigte Funktion nicht aus, obwohl sie in Standardbrowsern einwandfrei funktioniert.
Codebeispiel:
function hellYeah(text) { document.getElementById("text-holder").innerHTML = text; }
<!doctype html> <html> <head> <title>Getting Started Extension's Popup</title> <script src="popup.js"></script> </head> <body> <div>
Wenn der Benutzer auf „hyhy“ klickt, sollte sich „ha“ in „xxx“ ändern, in der Erweiterung jedoch funktioniert nicht.
Antwort:
Chrome-Erweiterungen und Firefox WebExtensions erlauben kein Inline-JavaScript. Daher müssen Sie andere Methoden zum Binden von Ereignissen verwenden.
Eine Möglichkeit besteht darin, dem Link eine ID zuzuweisen (z. B. ) und das Ereignis mithilfe von addEventListener in der Datei popup.js zu binden:
document.addEventListener('DOMContentLoaded', function() { var link = document.getElementById('link'); // 点击逻辑如下: link.addEventListener('click', function() { hellYeah('xxx'); }); });
Stellen Sie sicher, dass Popup angezeigt wird .js Als separate Skriptdatei geladen:
<script src="popup.js"></script>
Das obige ist der detaillierte Inhalt vonWarum funktioniert meine Inline-Onclick-Funktion in einer Chrome/Firefox-Erweiterung nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!