Jag har ett script på min sida som fungerar helt korekt på sidan så länge jag skickar det som text/html. Kolla på sidan i IE så får ni se. Men när jag lägger till en xml deklaration i dokumentet så fungerar scriptet som det ska (om man väl klickar på det) men de behövs typ "aktiveras" för att fungera? men sen fungerar det bra.
Hur löser jag det problemet, så scriptet är "aktiverat" direkt?
Om det fungerar korrekt utan XML-deklaration är det väl bara låta bli att använda XML-deklarationen? Den är ändå meningslös i text/html... gör bara så att IE6 går i quirks mode.
Problemet skulle kunna ligga i att du använder document.write, som är deprecated i XHTML Strict. Jag vet inte om IE7 är kompetent nog att fatta det, men mozilla fattar det definitivt. Jag rekommenderar dig att helt enkelt ersätta document.write-koden med att lägga in motsvarande HTML-kod i din HTML-fil:
Tack! Tänkte inte på det.. Finns det någon anledning till att document write inte fungerar? Men anledningen till att det är i javascriptet är för att det ska fungera även utan javascript! Om jag sätter display:none i css filen så kommer det inte fungera för de som har css men inte javascript.
zcorpan
Inget problem i IE eftersom jag inte använder xml-deklaration då..
document.write är inte depreated, det har bara inte specifierats hur det ska fungera i XML än, och som det fungerar i HTML är problematiskt i XML eftersom man då inte kan veta om dokumentet är välformat eller inte.
Hur som helst är det är det lättare att lägga till en klass på body med javascript så kan du ha olika stilar för JS på och JS av.
document.body.className += " hasjs";
/* utan js */
.submenu { }
/* med js */
.hasjs .submenu { display:none; }
...
<body>
<script type="text/javascript">
if (document.getElementById) // eller vad nu ditt skript är beroende av
document.body.className += " hasjs";
</script>
...