Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21

Discussione: problema byteflex

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    379

    problema bytefx

    salve a tutti!

    Da qualche giorno sto provando la libreria bytefx ma imbatto in un errore che non riesco a scovare. diciamo che ho creato una funziona js per gestire gli iframe ed il cambio delle rispettive pagine all'interno. volevo uno script che mi permettesse di effettuare un fadeout della pagina corrente, che in seguito mi caricasse la pagina nuova ridimensionando l'iframe al rispettivo contenuto, e che tramite un fadein mi caricasse la nuova pagina.

    e fino ad un certo punto ci sono arrivato ma ora non so dove sto sbagliando perche firefox e ie si dimostrano diversi nell'interpretare!


    questa è la mia funzione:
    Codice PHP:
        function cambiaPagina(url){
            var 
    element = $("ifcont");
                
    bytefx.fade(element,100,0,7,function(){
                    
    element.contentWindow.location url;
                    
    bytefx.$event(element,"onload",function(){                
                        var 
    newH element.contentWindow.document.body.scrollHeight;                    
                        
    bytefx.size(element,{height:newH},6);
                        
    bytefx.fade(element,0,100,2);
                    });                
                });    
        } 
    su ff sembra funzionare ma su ie non ce verso!

  2. #2
    il problema non è di bytefx ma dell'elemento a cui agganci l'evento.

    Su IE e FireFox il window del documento dell'iframe sono completamente differenti (ed ora non ricordo cosa voglia IE per funzionare, se ho tempo ti faccio sapere, altrimenti cerca iframe window in google)
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    mi sembra che il riferimento all' iframe sia corretto, qualora ovviamente "ifcont" sia un id

    questo invece
    var newH = element.contentWindow.document.body.scrollHeight;
    va bene se il documento nell' iframe manda IE in quirk, ma se IE e' in standards compliance mode (c'e' un doctype valido) proprieta' del document.body vengono assegnate a document.documentElement
    var newH = element.contentWindow.document.documentElement.scr ollHeight;

    ciao

  4. #4
    Originariamente inviato da Xinod
    mi sembra che il riferimento all' iframe sia corretto, qualora ovviamente "ifcont" sia un id

    questo invece
    var newH = element.contentWindow.document.body.scrollHeight;
    va bene se il documento nell' iframe manda IE in quirk, ma se IE e' in standards compliance mode (c'e' un doctype valido) proprieta' del document.body vengono assegnate a document.documentElement
    var newH = element.contentWindow.document.documentElement.scr ollHeight;

    ciao
    ecco, si, non ricordavo se era la window o il document ad essere diverso, chiedo scusa
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    379
    so' che è passato davvero molto tempo dal mio ultimo intervento, vi ringrazio tutti per le risposte date ma tuttativa su IE continua a non funzionare nulla. L'effetto di fade out fade id ora sono a posto tuttavia il ridimensionamento del iframe non funziona.

    A prescindere dal fatto che i cocumenti all'interno abbia un doctype o meno! sono davvero in crisi è tutto il pomeriggio che sto facendo delle prove! nulla da fare!




    Codice PHP:
        function cambiaPagina(url){
            var 
    element = $("ifcont");
                
    bytefx.fade(element,100,0,7,function(){
                    
    element.contentWindow.location url;
                    
    bytefx.$event(element,"onload",function(){                
                        var 
    newH element.contentWindow.document.documentElement.scrollHeight;        
                        var 
    newW bytefx.$size(element);            
                        
    bytefx.size(element,{width:newW.width,height:newH},6);                    
                    });        
                    
    bytefx.fade(element,0,100,2);        
                });    
        } 

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    379
    up

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    lascia un link ad una pagina con il minimo indispensabile se vuoi che qualcuno ci dia un' occhiata

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    379
    a parte che adesso non mi riconosce nemmno piu' la funziona sto' letteralmente disperando!

    cmq vi lascio una pagina:
    http://jerry6565.altervista.org/test123/

    grazie cmq delle risposte ^^

  9. #9
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ci sono varie inesattezze, tipo
    link1
    dev' essere
    link1
    altrimenti quell' istruzione viene eseguita nel window specificato in target, dove ovviamente la funzione non esiste

    fondamentalmente pero' il problema mi sembra risiedere nell' onload sull' iframe,
    con IE, almeno da queste prove veloci, non c'e' verso di (sovra)scrivere l' onload via script
    codice:
    function $(id){
    	return document.getElementById(id);
    }
    
    window.onload=function(){
    	$('xframe').onload=function(){alert('sovrascritto')}
    }
    
    <iframe id="xframe" name="xframe" onload="alert('originale')"></iframe>
    cosa che se confermata mi giunge nuova ma ne prendiamo atto,

    in tal caso l' unica e' avere un onload gia' presente nel markup dell' iframe
    - il tuo xpag sfuma quello che deve sfumare e carica la nuova pagina nell' iframe
    - l' onload nell' iframe si preoccupera' di aggiustare l' altezza + fare il fade in

    tra l' altro, probabilmente lo ignori completamente, ma questo
    bytefx.$event(element,"onload",function(){...blabl abla...});
    seppure funzionasse, non sarebbe una bella cosa perche' ad ogni onload si accoderebbe un nuovo onload ...dopo 10 click, ad ogni click esegui 10 volte la stessa funzione...

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    379
    grazie di tutto Xinod, le delucidazioni mi sono state di aiuto, tuttavia, dato che non sono proprio un genio in javascript non riesco ancora a far girare tutto come vorrei!

    dato che hai detto che è possibile fare cio' che voglio solo da dentro il frame allora mi sono messo un attimo al lavoro tuttavia ora pensandoci, lo scrip che eseguivo prima ( senza fade-in-out ) faceva anch'esso tutto dall'esterno e funzionava perfettamente sia su FF che su IE


    Il codice che avevo prima era questo e suppongo sia stato una persona di questo forum a darmela:
    codice:
    var timer=false;
    function setval(x,fx){
    	var m=(x<fx)?1:-1;
    	x=x+((2+(((fx-x)/4)*m))/(2*0.8))*m;
    	if((m>0 && x>fx)||(m<0 && x<fx)) x=fx;
    	return x;
    }
    
    function setH(fh){
    	el=$('content');
    	var h=setval(parseInt(el.style.height),fh);
    	el.style.height=h+'px';
    	if(h!=fh){
    		timer=setTimeout("setH("+fh+")",50);
    	}
    }
    
    function rSetH(fh){
    	if(timer) clearTimeout(timer);
    	setH(fh);
    }
    Queste funzioni mi settavano la dimensione dell'iframe a a prescindere dal suo contenuto... dato che io volevo anche i fade e come dire qualche cazzatina in piu' decisi di fare tutto con bytefx e come detto fino ad ora non ci sono riuscito.

    Se è possibile mi piacerebbe fare tutto dall'esterno (nell'index), per non dover compromettere i markup dei numerosi file che vado ad inserire nell'iframe!!

    A questo punto spero due cose soltanto la cosa sia fattibile in qualche modo anche con bytefx altrimenti tocca usare i codici vecchi e lasciare tutto come era (anche se decisamente piu' brutto)

    la cosa che piu' mi infastidisce è che con FF tutto funziona alla perfezione, ma passando ad IE fa venire i brividi altrimenti vi assicuro che non ci sarei rimasto pomeriggi interi!!

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.