zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden Styleswitcher funktioniert nicht mit dem InternetExplorer

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 22.07.2007, 00:31
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 22.07.2007
Beiträge: 5
Baron befindet sich auf einem aufstrebenden Ast
Standard Styleswitcher funktioniert nicht mit dem InternetExplorer

hi, ich bin neu hier, und nun zu meinem ersten problem
(ich hoffe der code ist selbstverstaendlich -> also es handelt sich darum ueber ein dropdownmenue das hintergrundbild zu aendern, was auch wunderbar klappt im opera und firefox, aber nicht im ie):
PHP-Code:
<html>
<
head
<
title>Switcher</title>

<
link rel="stylesheet" href="1.css" type="text/css" title="1" />
<
link rel="alternate stylesheet" href="2.css" type="text/css" title="2" />
<
link rel="alternate stylesheet" href="3.css" type="text/css" title="3" />
<
link rel="alternate stylesheet" href="4.css" type="text/css" title="4" />

<
script type="text/javascript" language="javascript">
function 
setActiveStyleSheet(title)
{
    var 
iamain;

    for (
0; (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 
ia;

    for (
0; (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 
ia;

    for (
0; (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(namevaluedays)
{
    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 
0ca.lengthi++)
    {
        var 
ca[i];

        while (
c.charAt(0) == ' ')
            
c.substring(1c.length);

        if (
c.indexOf(nameEQ) == 0)
            return 
c.substring(nameEQ.lengthc.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'title365);
}

var 
cookie readCookie('style');
var 
title  = (cookie) ? cookie getPreferredStyleSheet();

</script>
</head>

<body> 

<select style=background-color:000000;color:ffffff;position:absolute;top:60px;left:70px;z-index:1>
<option style=background-color:000000;color:ffffff>Design auswählen...</option>
<option style=background-color:006650;color:ffffff onclick="setActiveStyleSheet('1');">1</option>
<option style=background-color:860000;color:ffffff onclick="setActiveStyleSheet('2');">2</option>
<option style=background-color:9b4513;color:ffffff onclick="setActiveStyleSheet('3');">3</option>
<option style=background-color:0dfg00;color:ffffff onclick="setActiveStyleSheet('4');">4</option>
</select>

</body>
</html> 
Danke für jede Hilfe
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 22.07.2007, 11:34
Alles- & Nixkönne
XHTMLforum-Mitglied
 
Registriert seit: 05.10.2006
Ort: Hamburg
Beiträge: 156
Ernie wird schon bald berühmt werden
Standard

Morgen,

Warum dein Code nicht im IE funktioniert sehe ich jetzt auf die schnelle nicht, nur folgendes:

Den link tag über das tilte-attribut zu referenzieren, halte ich für ungeschickt. Nimm lieber id und beachte, daß hierfür keine reinen Zahlen erlaubt sind.

Den wechsel über onclick im option tag zu vollziehen ist auch nicht wirklich gut, nimm lieber onchange im select tag.

Weil heute Sonntag ist und ich gerade eiene Datei mit der von Dir gesuchten Funktion offen habe hier der Code für das onchange event:

Code:
function changeStyleSheet(){
var opts = this.getElementsByTagName('option'), actSheet = null;
  for (var i = 0; i< opts.length; i++) {
   var sheet = document.getElementById(opts.item(i).value);
   if (opts.item(i).selected) { actSheet = sheet; continue }
   sheet.rel = 'alternate stylesheet';
   sheet.disabled = true;
  }
  if (actSheet) {
   actSheet.disabled = false;
   actSheet.rel = 'stylesheet';
  }

}

Geändert von Ernie (22.07.2007 um 11:39 Uhr)
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Probleme mit dem Layout: divanordnung Muckel CSS 8 29.06.2008 11:28
csshover.htc + IE6 funktioniert nicht sharks CSS 1 13.03.2008 11:50
Div box dem inhalt anpassen? homezonebenny CSS 1 29.11.2007 09:11
Scrollbares Textfeld mit purem CSS Dancer CSS 6 24.01.2005 15:58
Probleme mit dem Einloggen terrikay Fragen, Konstruktive Kritik, Lob / Bekanntmachungen 18 24.10.2004 23:12


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:02 Uhr.