Hjälp med javascript - språk och cookie (funkar ej i IE)

Permalänk
Medlem

Hjälp med javascript - språk och cookie (funkar ej i IE)

Har suttit och petat med ett script som sparar en kaka med information om vilket språk man valt. Jag använder jquery för att importera in i en speciell div.

Så här länkar jag in materialet till sidan:

<div id="import"> <script> checkCookie('namnet_på_sidan') </script></div>

Så här ser skriptet som hanterar kakan ut:

function getCookie(c_name) { if (document.cookie.length>0) { c_start=document.cookie.indexOf(c_name + "="); if (c_start!=-1) { c_start=c_start + c_name.length+1; c_end=document.cookie.indexOf(";",c_start); if (c_end==-1) c_end=document.cookie.length; return unescape(document.cookie.substring(c_start,c_end)); } } return ""; } function setCookie(c_name,value,expiredays) { var exdate=new Date(); exdate.setDate(exdate.getDate()+expiredays); document.cookie=c_name+ "=" +escape(value)+ ((expiredays==null) ? "" : ";expires="+exdate.toGMTString()); } function checkCookie(html_name,value) { lang=getCookie('lang'); if (lang!=null && lang!="" && lang=="en") { $("#import").load("webb/lang/"+html_name+"_en.html"); } else if (lang!=null && lang!="" && lang=="sv") { $("#import").load("webb/lang/"+html_name+"_sv.html"); } else { lang="en"; if (lang!=null && lang!="") { setCookie('lang',lang,365); $("#import").load("webb/lang/"+html_name+"_en.html"); } } }

html_name är alltså variabeln för namnet på sidan och så lägger skriptet på _en.html eller _sv.html själv beroende på vilket språk som valts.

Detta fungerar felfritt i Fx men vill inte i IE. Någon som vet vad detta kan bero på?
Tacksam för hjälp! Passar även på att hälsa trevlig valborg.

Visa signatur

i7 920 | 12GB DDR3 | GTX 480 | GA-X58A-UD7 | 160GB SSD X25-M G2 | 1TB F3 HD103SJ | W7 64-bit | Mac Mini
Webb: bluekitestudios.com

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av save
Har suttit och petat med ett script som sparar en kaka med information om vilket språk man valt. Jag använder jquery för att importera in i en speciell div.

Så här länkar jag in materialet till sidan:

<div id="import"> <script> checkCookie('namnet_på_sidan') </script></div>

Så här ser skriptet som hanterar kakan ut:

function getCookie(c_name) { if (document.cookie.length>0) { c_start=document.cookie.indexOf(c_name + "="); if (c_start!=-1) { c_start=c_start + c_name.length+1; c_end=document.cookie.indexOf(";",c_start); if (c_end==-1) c_end=document.cookie.length; return unescape(document.cookie.substring(c_start,c_end)); } } return ""; } function setCookie(c_name,value,expiredays) { var exdate=new Date(); exdate.setDate(exdate.getDate()+expiredays); document.cookie=c_name+ "=" +escape(value)+ ((expiredays==null) ? "" : ";expires="+exdate.toGMTString()); } function checkCookie(html_name,value) { lang=getCookie('lang'); if (lang!=null && lang!="" && lang=="en") { $("#import").load("webb/lang/"+html_name+"_en.html"); } else if (lang!=null && lang!="" && lang=="sv") { $("#import").load("webb/lang/"+html_name+"_sv.html"); } else { lang="en"; if (lang!=null && lang!="") { setCookie('lang',lang,365); $("#import").load("webb/lang/"+html_name+"_en.html"); } } }

html_name är alltså variabeln för namnet på sidan och så lägger skriptet på _en.html eller _sv.html själv beroende på vilket språk som valts.

Detta fungerar felfritt i Fx men vill inte i IE. Någon som vet vad detta kan bero på?
Tacksam för hjälp! Passar även på att hälsa trevlig valborg.

Kollat lite på koden och den ser ju rätt ut. I alla fall så som jag skulle göra för FF. Klagar någon javascript-debugger av något slag på koden?

Hur många cookies har du? IE7 har en limit på 20 tror jag. Finns ju lite tekniker för att lösa detta om det skulle vara så.

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem

Testade lite snabbt, fungerar som det ska (IE7/8). Om du sitter på IE8 så kan jag rekommendera jsdebuggern som de har packat med, tryck på F12 så hittar du den.

Permalänk
Medlem

Det är bara en cookie än så länge. Det som händer är att när man kommer in på sidan så laddas inte det länkade innehållet (som anropas med hjälp av jquery), det fungerar dock som sagt i Fx.
Mitt egna cookiescript och jquery länkas in externt till html-filen.
Använder även <body onLoad="checkCookie()">. Det är IE7 jag kör.

Enligt debugern så är det fel på rad 27 i min lang.js (som hanterar kakorna):

lang=getCookie('lang');

Alltså i checkCookie-funktionen.
Någon som får några spontana idéer?

Visa signatur

i7 920 | 12GB DDR3 | GTX 480 | GA-X58A-UD7 | 160GB SSD X25-M G2 | 1TB F3 HD103SJ | W7 64-bit | Mac Mini
Webb: bluekitestudios.com

Permalänk
Medlem

JS-noob här. Den gnäller inte på att det inte står "var lang=getCookie('lang');"?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av badboll
JS-noob här. Den gnäller inte på att det inte står "var lang=getCookie('lang');"?

Så noob var du inte! Tack det var precis det som spökade. Äntligen har jag implementerat den första ganska ok språkändraren på en webbsida (woho).
Trevlig kväll gott folk.

Visa signatur

i7 920 | 12GB DDR3 | GTX 480 | GA-X58A-UD7 | 160GB SSD X25-M G2 | 1TB F3 HD103SJ | W7 64-bit | Mac Mini
Webb: bluekitestudios.com