2016-06-05 12 views
2

Ich bin neu hier also, wenn Sie etwas über meine Frage oder "Etikette" sehen, lass es mich wissen!Javascript Uhr auf neue Registerkarte

Ich versuche eine personalisierte neue Tab-Erweiterung in Google Chrome zu erstellen und habe ein Problem mit dem JavaScript-Zeitcode. Obwohl es in Brackets, dem Compiler, den ich verwende, funktioniert, wird die Zeit nie angezeigt, wenn ich den Erweiterungsordner auf Chrome lade. Nach der Suche erfuhr ich, dass dies daran lag, dass ich mein Javascript inline anstatt in einer externen Datei hatte, und so versuchte ich natürlich, mein Skript in eine time.js-Datei zu verschieben. Ich bin mir nicht ganz sicher, wie ich die Zeit beim Laden des neuen Tabs anzeigen soll, aber ich dachte, ich würde euch alle meine Versuche zeigen.

Meine Datei index.html, irrelevant Code abgesehen, zeigt wie:

<html> 
<head> 
    <title>New Tab</title> 
    <script type = "text/javascript" src = "time.js"></script> 
</head> 
<body onload = "startTime()"> 
    <div id = "time"></div> 
    </div> 
</body> 

^ nicht aus irgendeinem Grund zu schließen HTML-Tag sehen. Wie auch immer, hier ist meine time.js Datei, etwas geändert up w3school Code:

function startTime() { 
    var today = new Date(); 
    var h = today.getHours(); 
    var m = today.getMinutes(); 
    h = minusTwelve(h); 
    m = checkTime(m); 
    document.getElementById('time').innerHTML = 
    h + ":" + m; 
    var t = setTimeout(startTime, 500);} 
function minusTwelve(i) { 
if (i > 12) {i = i - 12}; 
if (i == 0) {i = 12}; 
return i; 

function minusTwelve(i) { 
if (i > 12) {i = i - 12}; 
if (i == 0) {i = 12}; 
return i;} 

function checkTime(i) { 
if (i < 10) {i = "0" + i}; 
return i;} 

(traurig über den Einschnitten in den letzten zwei Funktionen, ging etwas bizarr: P)

Wie dem auch sei, ich habe diese Bisher und ich bin mir nicht sicher, wie man die Zeit integriert, wenn der Tab in Chrome geladen wird. Ich habe einige Leute erwähnt, addEventListener oder etwas für Klicks und so weiter, aber ich bin mir nicht sicher, wie dies hier gelten würde. Auch im Body meines HTML ist der Onload-Aufruf, und obwohl ich denken würde, dass dies sich darum kümmern würde, scheint es nicht zu haben: /. Ich würde deine Hilfe sehr schätzen.

Danke!

Antwort

0

Können Sie Fehler in der Javascript-Konsole sehen?

auch eine Sache, die ich bemerkte, ist, dass Sie den Verschluss Zahnspange für Ihre erste Funktion minusTwelve()

verpaßt haben, sehen, ob das Problem

behebt Und haben Sie erwähnt Skriptdatei in der Manifest-Datei? Check this docs

+0

Hallo! Danke für die Antwort. Das ist ein Fehler meinerseits, hatte Probleme beim Kopieren und Einfügen meines Codes, und so gibt es nur die Funktion minusTwelve() in meinem Code, und es funktioniert einwandfrei, wenn es nicht als Erweiterung in Chrome importiert wird. Ich wusste jedoch nichts über das Inhaltsskript! Ich habe diese in meine manifest.json Datei: {... "content_scripts": [{ "matches": [ " "], "css": [" style.css"], "js" : ["time.js"], "run_at": "dokument_end" } ], \t ... } vergebens. Jede zusätzliche Hilfe wäre sehr willkommen! – Sami

+0

Sie sollten versuchen, Ihren Code zu debuggen: https://developer.chrome.com/extensions/tut_debugging –

+0

Hallo wieder Akhilesh. Danke für deine Antworten! Ich habe mir das Tutorial angeschaut und bin durch die verschiedenen Breakpoints gegangen, die ich platziert hatte, aber es scheint das Problem nicht gelöst zu haben, das ich mit Javascript hatte. Gibt es einen Link zu manifest.json, den ich in HTML machen muss, um das Problem zu lösen? Und wisst ihr vielleicht, wie ich meine time.js auf andere Weise implementieren muss, Event-Listener oder ähnliches? Ich schätze deine Antworten sehr, habe viel gelernt, haha. – Sami

Verwandte Themen