JavaScript, Cookies og Browserkompatibilitet
Jeg har bøvl med at få bl.a. IE og Opera til at "opføre sig ordentligt" med en stump javascript jeg bruger til at styre en language cookie.Først lidt opsætning til problemstillingen
Mit website består af (bl.a.) to wordpress intallationer. Den ene, på dansk, er placeret i roden og den anden, på engelsk, er placeret i en undermappe. Fra menuen i begge installationer kan man skifte sprog, ligesom nye besøgende bliver mødt med en "Vælg sprog" side før de bliver sluppet ind til den ene, eller den anden version af mit site. - Alt dette ordnes vha. en cookie kaldet 'language'.
Til formålet har jeg tilrettet WP's index.php (i begge mapper) således, at man viderestilles til min \select.php side hvis ikke language cookien er sat, eller indeholder noget forståeligt. Select.php siden præsenterer brugeren for valget mellem dansk og engelsk og sætter, vha. Javascript, language cookien tilsvarende. Herefter sendes brugeren tilbage hvor de kom fra (index.php).
Index.php kan nu konstatere at cookien er sat, og vil derefter enten fortsætte med at loade wp, eller sende brugeren videre til den anden "index.php" hvor den eneste forskel mellem dem, er hvilken værdi af cookien der slipper brugeren videre, eller redirigerer dem.
Tilsvarende, på selve wordpress siden, når brugeren vælger at skifte sprog, sættes cookien til det modsatte sprog og siden (index.php) reloades.
Alle steder hvor brugeren klikker på et flag, bruger jeg "onClick" og javacript til at skrive værdien til cookien, mens jeg i index.php bruger PHP til at læse værdien af cookien.
Javascript koden til "Set_Cookie" kan ses her: http://techpatterns.com/downloads/javascript_cookies.php
Alt dette virker perfekt i Firefox, Chrome og Safari. Mens det enten slet ikke virker eller kun virker delvist i Internet Explorer og Opera.
Jeg har brug for en konkret pegepind til hvor inkompatibiliteten opstår og hvordan jeg fikser problemet med de to sidstnævnte browsere.
Jeg er klar over at jeg kan bruge php og lidt ekstre redirects istedet for "onClick", men vil foretrække at holde denne del så simpel og hurtig som mulig.