2010-10-13 6 views
0

J'ai une info-bulle qui, au passage de la souris, s'ouvre dans le coin supérieur gauche de la page, sans tenir compte du 'mouseover'. Dans le cas de IE8 cela fonctionne bien et ouvre juste au-dessus de l'endroit où la souris est placé mais dans Firefox, il est incapable de calculer/interpréter les valeurs.L'info-bulle s'ouvre au même endroit quelle que soit la zone de mise en page dans Firefox

ici est l'extrait de code pour infobulle

function DoFlyOver() 
{ 
    if(ToClear != -1) window.clearTimeout(ToClear); 
    var thisForm = eval("document." + formName); 
    if (FlyOverArea == null) FlyOverArea = document.getElementById("FlyOverArea"); 

    if (FlyOverArea.firstChild!==null) 
     FlyOverArea.removeChild(FlyOverArea.firstChild); // remove all existing content 
     FlyOverArea.appendChild(document.createTextNode(FoText)); 

    FoLeft = $displayOptions.getFlyoverLeftOfCursor(); 
     FoTop = $displayOptions.getFlyoverTopOfCursor(); 
    FlyOverArea.style.left = Number(thisForm.mousex.value) + Number(thisForm.scrollx.value) - Number(FoLeft); 
    FlyOverArea.style.top = Number(thisForm.mousey.value) + Number(thisForm.scrolly.value) - Number(FoTop); 
    var maxX = (window.screen.width * $displayOptions.getFlyoverThreshold())/100; 

// If the mouse is at the extreme right corner the max threshold should the tooltip be //placed. 
    if(FlyOverArea.style.posLeft > (window.screen.width - maxX)){ 

    FlyOverArea.style.left = window.screen.width - maxX; 
    } 
    FlyOverArea.style.display = ""; 
    ToClear = setTimeout("ClearFlyOver()", $displayOptions.getFlyoverVisibleTimeWithCursor(), "JAVASCRIPT");//set timeout 
} 

    <DIV ID=FlyOverArea CLASS="FO" STYLE="display: none"> 
    </DIV> 

Je soupçonne son wih style.top et style.left et essayé avec style.pixelLeft,style.posleft aussi, mais pas d'utilisation

+0

Avez-vous débogué votre code et regardé ce que les valeurs sont et comment ils diffèrent d'un navigateur à? Vous ne savez pas pourquoi vous stockez des valeurs pour la position de la souris dans un champ de formulaire. – epascarello

+0

oui, j'ai utilisé firebug, mais pas beaucoup d'utilisation – GustyWind

Répondre

0

Ha J'ai trouvé la réponse, Mozilla ne peut pas reconnaît chiffres mais si vous ajouter avec px il va définir la position. Par exemple

var theLeft=Number(thisForm.mousex.value) + Number(thisForm.scrollx.value) - Number(FoLeft); 
FlyOverArea.style.left = theLeft+"px" 

Cette résolu le problème