22. august 2002 - 12:33Der er
11 kommentarer og 1 løsning
Netscape og DOM2
Se på følgende kode. Ideen er, at jeg vil vise en lille firkant, som man skal kunne klikke på, hvorefter der skal ske "et eller andet". I eksemplet vises musens koordinater. Det virker perfekt i IE men NS6 giver naturligvis problemer, hvis jeg tilskriver firkanten en værdi. Du kan se det i eksemplet ved at fjerne // fra //div.appendChild(tekst)
Hvis man gør det, reagerer Netscape på museklik overalt i browseren. vel at mærke, først efter man har klikket på området først.
Er der nogen, som har et bud på en løsning? Det skal kun fungere i NS6+ og IE6+. ------------------------------- <html> <head> <title>Netscape Problem</title> </head> <body> <Script Language="JavaScript"> function getDiv(x,y,w,h,col){ div=document.createElement("Div") div.style.position="absolute" div.style.backgroundColor=col div.style.visibillity="visible" div.style.left= x + "px" div.style.top= y + "px" div.style.width= w + "px" div.style.height=h +"px" div.style.zOrder="100" div.style.padding="0px 0px 0px 0px" return div } var divx=new getDiv(100,100,250,50,"#778899") var tekst=document.createTextNode("sgjsjks") tekst.data="ABCDEFG"
//Denne linie gør hele forskellen //div.appendChild(tekst) //-------------------------------
//var divx2=new getDiv(100,100,350,250,"#99AABB") var docBody=document.getElementsByTagName("body").item(0) docBody.appendChild(div)
div.onmousedown = startDrag;
function startDrag(e){ var x=(window.event)?event.offsetX:e.layerX var y=(window.event)?event.offsetY:e.layerY alert(x,y) } </script>
Lad mig iøvrigt tilføje følgende: Man kan indsætte følgende 2 linier i startDrag, for at undgå at event sendes videre ned i systemet og at behandlingen færdiggøres i NS. e.preventDefault(); e.preventBubble(); Så virker det i NS. Hvis man herefter genopfrisker browservinduet, virker det ikke igen!???
hvis jeg lige ændrer til alert(x+','+y) får jeg en fin alert med koordinaterne (godt nok i NS7 men forskellen er ikke så stor) hvad var det problemet var?
det gør der heller ikke. det er noget p.i.s. men det lader til at være en NS6 specifik ting. kan ikke provokere NS7 til narrestreger (hvilket jo sådan set må glæde dig :-)
Ns viser af princik ikke noget der ikke har et indhold. <td></td> bliver til et hul i tabellen hvor baggunden skinner igennem <div></div> tegnes ikke <body bgcolor='red'></body> viser brovserens defaultfarve.
så du bliver nødt til at udføre den der div.appendChild(tekst) fx med et usynligt indhold: tekst.data=" "; // nonblank space div.appendChild(tekst);
Nu har jeg så installeret NS7 og der fungerer det, som det burde. Er der nogen tidsplan for, hvornår den endelige release er på gaden?
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.