Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    spiegazione su funzionamento script

    Vorrei mettere all'attenzione degli utenti del forum, un caso di interpretazione di codice javascript un pò "singolare" da parte di IE.
    Nello specifico io ho questa funzione:


    <script language="javascript">
    function P7_Snap() { //v2.62 by PVII
    var x,y,ox,bx,oy,p,tx,a,b,k,d,da,e,el,args=P7_Snap.arg uments;a=parseInt(a);
    for (k=0; k<(args.length-3); k+=4)
    if ((g=MM_findObj(args[k]))!=null) {
    el=eval(MM_findObj(args[k+1]));
    a=parseInt(args[k+2]);b=parseInt(args[k+3]);
    x=0;y=0;ox=0;oy=0;p="";tx=1;da="document.all['"+args[k]+"']";
    if(document.getElementById) {
    d="document.getElementsByName('"+args[k]+"')[0]";
    if(!eval(d)) {d="document.getElementById('"+args[k]+"')";if(!eval(d)) {d=da;}}
    }else if(document.all) {d=da;}
    if (document.all || document.getElementById) {
    while (tx==1) {p+=".offsetParent";
    if(eval(d+p)) {x+=parseInt(eval(d+p+".offsetLeft"));y+=parseInt( eval(d+p+".offsetTop"));
    }else{tx=0;}}
    ox=parseInt(g.offsetLeft);oy=parseInt(g.offsetTop) ;var tw=x+ox+y+oy;
    if(tw==0 || (navigator.appVersion.indexOf("MSIE 4")>-1 && navigator.appVersion.indexOf("Mac")>-1)) {
    ox=0;oy=0;if(g.style.left){x=parseInt(g.style.left );y=parseInt(g.style.top);
    }else{var w1=parseInt(el.style.width);bx=(a<0)?-5-w1:-10;
    a=(Math.abs(a)<1000)?0:a;b=(Math.abs(b)<1000)?0:b;
    x=document.body.scrollLeft + event.clientX + bx;
    y=document.body.scrollTop + event.clientY;}}
    }else if (document.layers) {x=g.x;y=g.y;var q0=document.layers,dd="";
    for(var s=0;s<q0.length;s++) {dd='document.'+q0[s].name;
    if(eval(dd+'.document.'+args[k])) {x+=eval(dd+'.left');y+=eval(dd+'.top');break;}}}
    if(el) {e=(document.layers)?el:el.style;
    var xx=parseInt(x+ox+a),yy=parseInt(y+oy+b);
    if(navigator.appName=="Netscape" && parseInt(navigator.appVersion)>4){xx+="px";yy+="px ";}
    if(navigator.appVersion.indexOf("MSIE 5")>-1 && navigator.appVersion.indexOf("Mac")>-1){
    xx+=parseInt(document.body.leftMargin);yy+=parseIn t(document.body.topMargin);
    xx+="px";yy+="px";}e.left=xx;e.top=yy;}}
    }
    </script>



    inserita nel tag head della pagina, che mi permette di posizionare un livello sopra un'immagine qualsiasi.
    associo quindi all'immagine del caso l'evento
    onLoad="P7_Snap('snap','nomelayer',0,0)"
    dove snap è l'ID dato all'immagine, nomelayer l'ID del livello da incollare all'immagine e 0 / 0 il posizionamento del livello in pixel in relazione all'immagine.
    Arrivo al dunque
    La cosa strana e che così la funzione non funziona (scusate il gioco di parole) o meglio impostando la pagina che la contiene su IIS o PWS
    tutto va regolarmente, mentre portandola su un server NT mi restituisce un errore di debug che scompare con un semplice aggiornamento da browser.
    Se invece l'evento lo associo al tag body della pagina il javascript funziona anche senza aggiornare la pagina.

    Domanda:
    :master: :master:
    Perchè tutto ciò ?
    e soprattutto, perchè una pagina scritta interamente in linguaggio lato client viene interpretata in maniera differente dal browser a seconda del server dove risiede ?


    Spero che qualcuno possa rispondermi
    Grazie
    Formedia - comunicare impresa

  2. #2
    Buongiorno
    Up
    Formedia - comunicare impresa

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    633
    non dovrebbero esserci differenze...magari guarda cosa ti dice il debugger
    Alcuni miei articoli in PRO.HTML.IT: JavaScript | DHTML | DOM
    Sviluppo : wedev | forum

  4. #4
    il debugger mirestituisce mancato oggetto, come se non vedesse la funzione associata.
    Qualcuno potrebbe farmi una prova per vedere se è un problema mio o un bug di EI ?
    Formedia - comunicare impresa

  5. #5
    Re Up !!
    Formedia - comunicare impresa

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.