2017-01-18 2 views
-1

ich auf dieser kleinen Chrome-Erweiterung arbeitete für die Roblox Webseite, und aus irgendeinem Grunde, es will nicht ordnungsgemäß überhaupt arbeiten.Dieser Code für eine Chrome-Erweiterung nicht funktioniert, und ich habe keine Ahnung,

der Fehler

Uncaught TypeError: Cannot set property 'background' of undefined 
at extension_update (themeManager.js:7) 
at themeManager.js:14 

und dies ist der Code:

var colorOnePath = document.getElementsByClassName("navbar-fixed-top rbx-header"); 
var colorTwoPath = [document.getElementsByTagName("body"), document.getElementsByClassName("content")];  

var color = ["#008919", "#000000"]; 

function extension_update() { 
    colorOnePath.style.background = color[0]; 
    colorTwoPath[0].style.background = color[1]; 
    colorTwoPath[1].style.background = color[1]; 

    setTimeout(1000, extension_update) 
}; 

extension_update() 

Ich habe keine Ahnung, warum der Code festgelegt ist, wie dies, aber trotzdem ist es ein Problem überall? Ich konnte nicht finden, wo ich reparieren sollte. Danke!

+0

hinweis - 'document.getElementsByTagName (" body ") [0]' === 'document.body' –

Antwort

1

getElementsByClassName immer eine Array-ähnliche Sammlung von elements-- sogar zurück, wenn nur eine vorhanden ist. Also in Ihrem Code, anstatt die style.background Eigenschaft auf dem ersten Element in der Auflistung zu setzen, haben versucht, Sie, es auf die selbst sammeln - wie die Sammlung keine style Eigenschaft hat, erhalten Sie den Fehler, den Sie sehen. Versuchen Sie, Ihren Code zu diesem Wechsel:

var colorOnePath = document.getElementsByClassName("navbar-fixed-top rbx-header")[0]; 
var colorTwoPath = [document.getElementsByTagName("body")[0], document.getElementsByClassName("content")[0]];  

var color = ["#008919", "#000000"]; 

function extension_update() { 
    colorOnePath.style.background = color[0]; 
    colorTwoPath[0].style.background = color[1]; 
    colorTwoPath[1].style.background = color[1]; 

    setTimeout(1000, extension_update); 
} 

extension_update(); 

(Ich habe auch die Freiheit der Zugabe von Semikolons, wo sie fehlten und Entfernen von ihnen, wo sie nicht notwendig waren).

+0

' colorOnePath.style.background [0] '? Sie bedeuten 'colorOnePath [0] .style.background': p - ich persönlich würde die' [0] 'zu allen Ergebnissen von' getElementsBy * ' –

+0

@JaromandaX hinzufügen - guter Fang und gut recommendation-- accordingly-- Dank aktualisiert ! –

+0

ein anderer 'document.getElementsByTagName (" body ") [0]' === 'document.body': p –

Verwandte Themen