Daniel N.: Selektierten Wert einer Combobox in Variable speichern

Beitrag lesen

Hallo,

ich möchte den mit Hilfe einer Combobox selektierten Wert in einer Variable speichern.

Diese Variable möchte ich dazu nutzen, um die getroffenen Auswahl auf verschiedenen Seiten zur Verfügung zu haben.

Ich habe auf diesen Seiten wie folgt eine Combobox deklariert:

  
<select name="templateList" onchange="setActiveStyleSheet(this.options[this.selectedIndex].value);">  
 <option value="1">beiges Design</option>  
 <option value="2">grünes Design</option>  
</select>  

Wie der Text schon vermuten lässt möchte über diese Combobox das verwendete Styleet einstellbar machen. Dazu nutze ich das Script aus http://www.alistapart.com/stories/alternate/, dass die Auswahl in einem Cookie abspeichert und beim Laden in der Variable "title" ablegt.

Die Auswahl klappt soweit, auch bleibt das ausgewählte Stylesheet beim Wechsel zwischen den Seiten bestehen. Nur leider wird das ausgewählte Stylesheet nicht in der Combobox angezeigt. Was mache ich falsch?

Vielen Dank und viele Grüße
Daniel

P.S.:
Damit ihr nicht erst auf der Webseite mit dem Script suchen müsst anbei noch der Javascript-Code:

  
function setActiveStyleSheet(title) {  
  var i, a, main;  
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {  
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {  
      a.disabled = true;  
      if(a.getAttribute("title") == title) a.disabled = false;  
    }  
  }  
}  
  
function getActiveStyleSheet() {  
  var i, a;  
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {  
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");  
  }  
  return null;  
}  
  
function getPreferredStyleSheet() {  
  var i, a;  
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {  
    if(a.getAttribute("rel").indexOf("style") != -1  
       && a.getAttribute("rel").indexOf("alt") == -1  
       && a.getAttribute("title")  
       ) return a.getAttribute("title");  
  }  
  return null;  
}  
  
function createCookie(name,value,days) {  
  if (days) {  
    var date = new Date();  
    date.setTime(date.getTime()+(days*24*60*60*1000));  
    var expires = "; expires="+date.toGMTString();  
  }  
  else expires = "";  
  document.cookie = name+"="+value+expires+"; path=/";  
}  
  
function readCookie(name) {  
  var nameEQ = name + "=";  
  var ca = document.cookie.split(';');  
  for(var i=0;i < ca.length;i++) {  
    var c = ca[i];  
    while (c.charAt(0)==' ') c = c.substring(1,c.length);  
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);  
  }  
  return null;  
}  
  
window.onload = function(e) {  
  var cookie = readCookie("style");  
  var title = cookie ? cookie : getPreferredStyleSheet();  
  setActiveStyleSheet(title);  
}  
  
window.onunload = function(e) {  
  var title = getActiveStyleSheet();  
  createCookie("style", title, 365);  
}  
  
var cookie = readCookie("style");  
var title = cookie ? cookie : getPreferredStyleSheet();  
setActiveStyleSheet(title);