Jeg har denne fil ( www.heni.dk/linktest.html ) som virker uden problemer i Firefox, men ikke i IE - hvilket den meget gerne også skulle. Er der et klogt hovede, der kan løse mit problem?
jeg er ikke helt med på hvad du mener... Mener du at jeg skal lave en omgang <html><head> osv, i den fil?
Jeg bliver nødt til at bruge javascipt, for at kunne markere links - sådan at markeringen bliver ved det pågældende link, og forsvinder hvis man klikker på et andet link. Ved at lave en active og visited, bliver markeringen ikke ved klik andet steds på siden. Og i Firefox virker det ikke.
Men egentligt er jeg mindst lige så interesseret i at vide, hvorfor mit script ikke fungerer i IE... når nu det kører som smurt i firefox.
Det ville være meget lærerigt, hvis jeg kunne få det at vide.
Jeg har en række links, som når man klikker på et af disse link, skal dette markeres og kun dette - som det er tilfældet på siden (heni.dk/linktest.html) i Firefox. Scriptet skal påsætte en ekstra klasse (selected) til den eksisterende klasse (link) på det pågældende link, hvormed linket bliver markeret (med css). Var det tydeligt nok? ellers vil jeg gerne forsøge at gøre det tydeligere...
Jeg har forsøgt at lave en alert(elm), hvormed IE skriver [objekt] og Firefox skriver elementets navn (korrekt). Så det kunne tyde på at IE ikke registrerer de forskellige 'a' tags, og derfor ikke skriver det korrekt ud og dermed påhæfter den ekstra klasse.
hvis du åbner siden i henholdsvis IE og firefox, og klikker på et link, vil du se forskellen. Jeg har sat linket "test 6" til at have den udvidede klasse, som et link skal have når den er markeret.
Jeg er på vej udaf døren, så jeg må prøve at kikke på det imorgen. Én ting er dog sikkert: Du bør absolut undgå at skifte/tilføje CSS-klasse på HTML-elementer! Det performer ekstremt elendigt, da browseren hvergang genberegner hele siden, hvilket er vildt overkill - og ved komplekse sider kan tage flere sekunder! ;o)
Skift i stedet de enkelte style-properties på elementets style-objekt =)
jeg mener du skal lave valid markup (html4 i din tilfælde) , før du kan regne med at javascript virker som beregnet.
Det kan overhovedet ikke betale sig at forsøge at hjælpe med noget som helst javascript, når din markup ikke er valid, og browserne derfor kører i quirks-mode.
Jeg ved stadig ikke, hvad du vil lave - og hvorfor (det sidste er nok det aller vigtigste at svare på). Skal siden reloades og informationer sendes med i URL'en - og hvorfor så ikke gøre tingene på serveren?
function createOnclickEventsOnA(elm) { temp[temp.length] = elm; var aCol = elm.getElementsByTagName("a"); var aColLength = aCol.length; for(var i=0; i<aColLength; i++) { var event = function (e) { var targ; if (!e) var e = window.event; if (e.target) targ = e.target; else if (e.srcElement) targ = e.srcElement; if (targ.nodeType == 3) // defeat Safari bug targ = targ.parentNode;
Tilsyneladende, når man bruger attachEvent, så refererer this ikke længere til objektet eventen bliver kaldt fra, men derimod til window objektet. Og det kan man ikke bruge til en skid. Ære være IE.
Den løsning jeg kom frem til var at sende eventen med og fiske target ud af den. Men det er så også forskelligt fra browser til browser...
tak for hjælpen. Undskyld jeg ikke kunne formulere mit problem tydeligt.
Hvis du bruger attachEvent korrekt, kan du sagtens få this til at referere til objektet(elementet), der udløser event'en - på samme måde som addEventListener. Kaldet skal blot pakkes ind i en anonym funktion ... helt ifølge reglerne for OOP i ECMA/JavaScript. Kan du ikke få det til at virke, er det således nok ikke MS eller IE's skyld ;o)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.