2016-04-18 10 views
0

Ich habe versucht, eine Chrome-Erweiterung, die das Datum zeigt, und alles lief gut, außer wenn ich versuchte, es auszuführen. Ich habe auf den Knopf geklickt, den ich programmiert habe, und es würde nicht anzeigen, was ich wollte.Schaltfläche funktioniert nicht in benutzerdefinierten Chrome-Erweiterung

Code:

JS

function myFunction() { 
 
    var d = new Date(); 
 
    var weekday = new Array(7); 
 
    weekday[0] = "Sunday"; 
 
    weekday[1] = "Monday"; 
 
    weekday[2] = "Tuesday"; 
 
    weekday[3] = "Wednesday"; 
 
    weekday[4] = "Thursday"; 
 
    weekday[5] = "Friday"; 
 
    weekday[6] = "Saturday"; 
 

 
    var n = weekday[d.getDay()]; 
 
    document.getElementById("checkday").innerHTML = n;
HTML

<!doctype html> 
 
<html> 
 

 
<head> 
 
    <title>Day checker</title> 
 
    <script src="popup.js"></script> 
 
</head> 
 

 
<body> 
 
    <h1>Click to show day</h1> 
 
    <button id="checkday">Check!</button> 
 
</body> 
 

 
</html>

JSON

{ 
    "manifest_version": 2, 

    "name": "What day is it", 
    "description": "This extension will find the date", 
    "version": "1.0", 

    "browser_action": { 
     "default_icon": "icon.png", 
     "default_popup": "popup.html" 
    }, 
    "permissions": [ 
     "activeTab" 
    ] 
} 

Bild (19x19) http://i.stack.imgur.com/FM9wt.png

+0

Sie sollten immer angeben, was die * erwartete * Ausgabe ist, sowie die * tatsächliche * Ausgabe. –

Antwort

1

Die Aktion muss dynamisch verbunden werden, nachdem der Inhalt DOM geladen wurde. Aus Sicherheitsgründen funktionieren statisch verknüpfte Aktionen (z. B. das Attribut onClick) nicht mit Chrome-Erweiterungen.

In Ihrem js-Datei (popup.js), fügen Sie diese

document.addEventListener('DOMContentLoaded', function(){ 
    document.querySelector('#checkday').addEventListener('click', myFunction); 
    // anything else you want to initialize on the page 
}); 

, dass sie die Arbeit sollte.

Verwandte Themen