Visualizzazione risultati 1 fino 3 di 3

Discussione: [javascript] incompatibilità tooltip a seconda del browser

  1. #1
    Guest

    Predefinito [javascript] incompatibilità tooltip a seconda del browser

    salve
    dopo tanto sono riuscito a fare un tooltip in javascript
    ma a quanto vedo non funziona su firefox e IE

    il codice del tooltip è

    javascript.js
    Codice HTML:
    function position(elemento){
    var posx = 0;    
    var posy = 0;   
     if(elemento.offsetParent){
     do{ 
          posx += elemento.offsetLeft;
              posy += elemento.offsetTop;
        if(!elemento.offsetParent){break;}        }   while(elemento = elemento.offsetParent)    }else if(elemento.x){
        posx += elemento.x;    
         posy += elemento.y;    }
                       posy = posy+20;  
                                  posx = posx+35;    
                                                   if(posx > 1000){posx = posx-110; }return{x:posx,y:posy};}
    
    
    function apri(link,text,nome,citta,colore,img,traccia,sex,eta){
    var pos=position(link);
    var obj=document.createElement("div");
    obj.style.border="1px solid "+colore;
    obj.style.backgroundColor="#ffffff";
    obj.style.color="#000000";
    obj.style.left= pos.x+"px";
    obj.style.top= pos.y+"px";
    obj.style.display="block";
    obj.style.width="150px";
    obj.style.position="absolute";
    obj.style.textAlign="center";
    obj.style.fontSize="15px";
    
    obj.setAttribute("id",text);
    
    var elemento=document.createElement("strong");
    var scrivi=document.createTextNode(text);
    
    elemento.appendChild(scrivi);
    obj.appendChild(elemento);
    
    if(sex=='Maschio'){
    var SexImg=document.createElement("img");
    SexImg.setAttribute("src","system/uomo.gif");
    SexImg.setAttribute("alt","M");
    obj.appendChild(SexImg);
              }else if(sex=='Femmina'){
    var SexImg2=document.createElement("img");
    SexImg2.setAttribute("img","system/donna.gif");
    SexImg2.setAttribute("alt","F");
    obj.appendChild(SexImg2);}
    
    var Br=document.createElement("br");
    obj.appendChild(Br);
    
    if(img !=''){
    var oggetto=document.createElement("img");
    oggetto.setAttribute("src","invia.php?page=gallery&sez=prew_tool&u="+text+"&file="+img);
    oggetto.setAttribute("alt","Foto");
    obj.appendChild(oggetto);   }
    
    if(nome !=''){
    var nameAppend=document.createElement("div");
    var nameNode=document.createTextNode("Nome:"+nome);
    nameAppend.appendChild(nameNode);
    obj.appendChild(nameAppend); }
    
    if(eta !=''){
    var AgeAppend=document.createElement("div");
    var AgeNode=document.createTextNode("Anni:"+eta);
    AgeAppend.appendChild(AgeNode);
    obj.appendChild(AgeAppend); }
    
    if(citta !=''){
    var cittaAppend=document.createElement("div");
    var cittaNode=document.createTextNode("Citta':"+citta);
    cittaAppend.appendChild(cittaNode);
    obj.appendChild(cittaAppend);}
    
    var trakAppend=document.createElement("div");
    var trakNode=document.createTextNode("Si trova:"+traccia);
    trakAppend.appendChild(trakNode);
    obj.appendChild(trakAppend);
    
    link.parentNode.insertBefore(obj,link); 
     }
    
    function chiudi(text2){
    var st=document.getElementById(text2);
    st.parentNode.removeChild(st);
    st.style.display="none";}
    poi su pagina.php
    richiamo il tutto così
    Codice HTML:
    <script type="text/javascript" src="javascript.js"></script>
    <a id="ciccio" onmouseover="apri(ciccio,'ciccio','nome','citta','colore','avatar','traccia','sesso','eta')" onmouseout="chiudi('ciccio')" href="pagina.php?profilo=ciccio">ciccio</a>
    ora con
    Opera 9.64 funziona a meraviglia
    Firefox 3.0.10 UN DISASTRO
    IE 8.0 durante il caricamento della pagina funziona a fine caricamento UN DISASTRO

    in pratica usando Firefox e IE
    come si passa sul link non apre niente e quando tolgo il mouse dal link il link scompare

    come potrei risolvere?
    grazie mille

  2. #2
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Stai facendo lo stesso errore che avevi in questa discussione: http://forum.it.altervista.org/basi-...ni-pop-up.html

    Hai assegnato al DIV aggiunto lo stesso ID del link... e poi succedono i casini. Prova così:
    - rimuovi l'ID dal link, se ti serve un riferimento, puoi tranquillamente usare this al posto del primo parametro
    - oppure inserisci per il link un ID diverso, l'importante è che non coincida con quello che vai ad impostare via JavaScript per il DIV (nella tua funzione è il parametro text).

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  3. #3
    Guest

    Predefinito

    ho modificato due righe
    Codice HTML:
    obj.setAttribute("id",text+"_newText");
    e la funzione chiudi

    Codice HTML:
    function chiudi(text2){
    var st=document.getElementById(text2+"_newText");
    st.parentNode.removeChild(st);
    st.style.display="none";}
    così facendo funziona sia su opera che IE
    mentre su firefox non visualizza niente ma in compenso il link non scompare

    può andare?

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •