Ich kann kein Javascript mit einer Schaltfläche verknüpfen

Ich kann kein Javascript mit einer Schaltfläche verknüpfen

Ich versuche, eine Erweiterung zu erstellen, die viel Datenverarbeitung erfordert, aber irgendwie gelingt es mir nicht, eine einfache Schaltfläche zu verknüpfen, um etwas zu tun. Ich wäre Ihnen auch dankbar, wenn Sie Ressourcen kennen, die mir in Zukunft hilfreich sein könnten.

http://codepaste.net/vsimew

function helloworld() {
  alert("Hello World!");
}

Dieser Befehl stammt von popup.js. Ich habe auch ein background.js für Listener, aber ich weiß nicht, wie man Listener verwendet.

Beste grüße

Antwort1

Der Grund, warum das nicht funktioniert, ist, dass Inline-Javascript in Erweiterungsseiten nicht zulässig ist.

Inline-JavaScript wird nicht ausgeführt. Diese Einschränkung verbietet sowohl Inline- <script>Blöcke als auch Inline-Eventhandler (z. B. <button onclick="...">).

Die erste Einschränkung verhindert eine große Anzahl von Cross-Site-Scripting-Angriffen, indem sie es unmöglich macht, versehentlich ein Skript auszuführen, das von einem böswilligen Drittanbieter bereitgestellt wurde. Sie erfordert jedoch, dass Sie Ihren Code mit einer sauberen Trennung zwischen Inhalt und Verhalten schreiben (was Sie natürlich sowieso tun sollten, oder?).

Sie können mit der Funktion einen Onclick-Handler hinzufügen addEventListener. Dieser Abschnitt der Chrome-Dokumentation enthält ein Beispiel dazu:

https://developer.chrome.com/extensions/contentSecurityPolicy#JSExecution

verwandte Informationen