Avatar billede styrmand Nybegynder
22. august 2002 - 12:33 Der 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>
Avatar billede styrmand Nybegynder
22. august 2002 - 12:35 #1
I skal lige være opmærksomme på, at der mangler </body> og </HTML> i eksemplets slutning.
Avatar billede styrmand Nybegynder
22. august 2002 - 12:41 #2
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!???
Avatar billede =maddog= Nybegynder
22. august 2002 - 12:42 #3
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?
Avatar billede styrmand Nybegynder
22. august 2002 - 12:55 #4
Har du prøvet at bruge refresh knappen nogle gange og så prøvet at klikke på området og udenfor området igen?
Avatar billede styrmand Nybegynder
22. august 2002 - 12:56 #5
Der skal ikke komme en alertbox, hvis man klikker uden for området.
Avatar billede =maddog= Nybegynder
22. august 2002 - 13:06 #6
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 :-)
Avatar billede jakoba Nybegynder
22. august 2002 - 13:07 #7
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="&nbsp";          // nonblank space
  div.appendChild(tekst);

mvh JakobA
Avatar billede jakoba Nybegynder
22. august 2002 - 13:08 #8
Ups.  mangler ; efter nbsp
  tekst.data="&nbsp;";          // nonblank space
Avatar billede =maddog= Nybegynder
22. august 2002 - 13:14 #9
det er vildt underligt, fordi den medtager white-space som tom textnode i DOM træet.
<span>
<span>Brian</span>
</span>

bliver til
        /- textNode('')
span - span - textNode('Brian')
        \- textNode('')
Avatar billede styrmand Nybegynder
22. august 2002 - 13:15 #10
Den browser jeg tester har version 6.2.3.
Hvad er en ver. 7. Er det noget til Apple eller?
Avatar billede =maddog= Nybegynder
22. august 2002 - 13:17 #11
Nææeh nej. Den er skam på gaden til hele svineriet.
http://www.eksperten.dk/spm/218164
Avatar billede styrmand Nybegynder
22. august 2002 - 13:29 #12
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?
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester