JavaScript macht nicht was es soll :(

striker159

Lt. Junior Grade
Registriert
Dez. 2008
Beiträge
333
hi
ich schreibe mir gerade ein greasemonkey script, und möchte dafür ein kleines menü mit einer checkbox haben.
der status der checkbox wird per localstorage gespeichert.
nun soll bei einem seitenaufruf die checkbox gechecked sein, wenn im localstorage true steht; analog bei false.
aber wenn im localstorage false steht, ist die checkbox trotzdem gechecked :mad:

mein code sieht so aus. hoffe mir kann jemand helfen.

Code:
function machmal(){
  document.getElementById("Einstellung1").checked = localStorage.getItem("Einstellung1");
}


if (document.URL.indexOf("home.php") > -1){
  var settings = document.createElement("table");
  settings.innerHTML = '<tbody><tr><th bgcolor="#5F5F75">Einstellungen</th></tr><tr><td>Zeige abc<input id=\"Einstellung1\" type=\"checkbox\" onchange=\"localStorage.setItem(this.id,this.checked);\"></td></tr></tbody>';
  getElementsByClass("contbox",document)[0].appendChild(settings);
  machmal();
}
 
hi,

hat zwar wahrscheinlich nichts damit zu tun, aber warum escapest du denn die Anführungsstriche hier?:

settings.innerHTML = '<tbody><tr><th bgcolor="#5F5F75">Einstellungen</th></tr><tr><td>Zeige abc<input id=\"Einstellung1\" type=\"checkbox\" onchange=\"localStorage.setItem(this.id,this.checked);\"></td></tr></tbody>';

da du ja Hochkommas für den String verwendest, müssten die doppelten Anführungszeichen nich escaped werden. bei bgcolor isses noch richtig aber danach nich mehr ;)

Aber könnte schon was damit zu tun haben, weil die ID ja dann nich Einstellung1 sondern \Einstellung1\ is.
 
Zuletzt bearbeitet: (Rechtschreibung, Markierung)
keine ahnung^^

auf jeden fall funktioniert es jetzt.
es lag daran, dass im localStorage alles als string gespeichert wird. ich musste also ,bevor ich was mit dem inhalt mache, "true" und "false" in true und false wieder umwandeln.
 
Zurück
Oben