Avatar billede jimgordon Nybegynder
31. januar 2008 - 09:52 Der er 4 kommentarer og
1 løsning

Problem med Div placering i Firefox

Hvordan skriver jeg en showMe funktion, der funker med Firefox (de tre style linier virker ikke). Det virker fint i IE.

<script>
document.onmouseover=ddInit;
document.onmouseup=Function("ddEnabled=false");

function ddInit(e){
  divObj=isIE ? document.all.divLayer : document.getElementById("divLayer"); 
}

function showMe(test, e){
  divObj.style.left = e.x
  divObj.style.top = e.y + 20
  divObj.style.visibility = "visible"
  document.getElementById("divTest").src  = test
}

</script>

<div id="divLayer" style="position:absolute;width:100px;left:200;top:200;visibility:hidden">
<img src="" alt="" border="1" name="divTest">
</div>

<a onmouseover="java script:showMe('http://localhost/billeder/test.jpg', event)" onmouseout="java script:hideMe()" href="#" name="test1">test</a><br>
Avatar billede w13 Novice
31. januar 2008 - 10:05 #1
Hvor får du event fra? Kunne det være denne, der gik galt?

Husk lige at <script> altid skal have en type:
<script type="text/javascript" language="javascript">

language er for kompatibilitet med ældre browsere.

Husk også at afslutte JavaScript-linjer med semikolon ;

document.getElementById() virker i alle browsere, så der er ingen grund til at teste for, om browseren er IE. Jeg har så bare givet billedet id="divLayer" i stedet for name="divLayer".

Du bør sætte src på billedet med .setAttribute("src",test);

Og i øvrigt er det helt overflødigt at skrive "java script:" i event-handlers, da disse som standard er javascript.

Dvs.:
----------------------------------------------
<script type="text/javascript" language="javascript">
function showMe(src,e){
  divObj=document.getElementById("divLayer");
  divObj.style.left=e.x;
  divObj.style.top=e.y+20;
  divObj.style.display="inline";
  document.getElementById("divTest").setAttribute("src",src);
}
</script>

<div id="divLayer" style="position:absolute;width:100px;left:200;top:200;display:none">
<img src="" alt="" border="1" id="divTest">
</div>

<a onmouseover="showMe('http://localhost/billeder/test.jpg',event)" onmouseout="hideMe()" href="java script:void(0)">test</a><br>
Avatar billede w13 Novice
31. januar 2008 - 10:09 #2
Ellers må du alerte de forskellige styles, som du bruger i showMe, og så se i FF, hvad den får galt i halsen.
Avatar billede jimgordon Nybegynder
31. januar 2008 - 13:52 #3
Det viste sig at windows eventet skal stå forest og hedde event og ikke e.

og i Firefox: divObj.style.left = event.clientX + 'px';

Mange tak for dine fine kommentarer, smid et svar.
Avatar billede w13 Novice
31. januar 2008 - 14:09 #4
Oki! =)
Avatar billede w13 Novice
01. februar 2008 - 21:08 #5
Mange tak for point!
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