Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it L'avatar di SymX
    Registrato dal
    Nov 2004
    Messaggi
    438

    Ajax dynamic div e lightbox 2.0 gallery

    Ciao,
    mi ritrovo ad avere una problematica con Ajax e la famosa gallery lightbox 2.0.
    Il mio problema sorge quando tramite questo potente codice scrivo nella mia div la pagina contenente il codice della gallery mensionata.
    codice:
    <script type="text/javascript">
    
    var loadedobjects=""
    var rootdomain="http://"+window.location.hostname
    
    function ajaxpage(url, containerid){
    var page_request = false
    if (window.XMLHttpRequest) // if Mozilla, Safari etc
    page_request = new XMLHttpRequest()
    else if (window.ActiveXObject){ // if IE
    try {
    page_request = new ActiveXObject("Msxml2.XMLHTTP")
    } 
    catch (e){
    try{
    page_request = new ActiveXObject("Microsoft.XMLHTTP")
    }
    catch (e){}
    }
    }
    else
    return false
    page_request.onreadystatechange=function(){
    loadpage(page_request, containerid)
    }
    page_request.open('GET', url, true)
    page_request.send(null)
    }
    
    function loadpage(page_request, containerid){
    if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
    document.getElementById(containerid).innerHTML=page_request.responseText
    }
    
    function loadobjs(){
    if (!document.getElementById)
    return
    for (i=0; i<arguments.length; i++){
    var file=arguments[i]
    var fileref=""
    if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding
    if (file.indexOf(".js")!=-1){ //If object is a js file
    fileref=document.createElement('script')
    fileref.setAttribute("type","text/javascript");
    fileref.setAttribute("src", file);
    }
    else if (file.indexOf(".css")!=-1){ //If object is a css file
    fileref=document.createElement("link")
    fileref.setAttribute("rel", "stylesheet");
    fileref.setAttribute("type", "text/css");
    fileref.setAttribute("href", file);
    }
    }
    if (fileref!=""){
    document.getElementsByTagName("head").item(0).appendChild(fileref)
    loadedobjects+=file+" " //Remember this object as being already added to page
    }
    }
    }
    
    </script>
    Il codice in questione carica dentro una div stabilita un altra pagina, e il suo lavoro è svolto alla grande direi, se non fosse nel momento che apro la gallery di immagini creta con LightBox 2.0 tutte le miniature appaiono ok, ma nel momento del click sul thumbnail per l'ingrandimento sembra che la pagina se ne sbatta del codice .js e apre l'img ingrandita come un classico <img href="" .... e ommettendo l'intera animazione con preload ecc....
    Premetto che la pagina caricata singolarmente funziona alla perfezione.

    Spero di essere stato chiaro semmai posto un esempio del mio problema

    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    il test l'hai effettuato online oppure in locale?

    Se l'hai fatto online, devi aspettare che sia caricata COMPLETAMENTE LA PAGINA.

    Se clicchi prima sull'ingrandimento, ti si apre semplicemente nel browser ... prova che ho effettuato personalmente.
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  3. #3
    Utente di HTML.it L'avatar di SymX
    Registrato dal
    Nov 2004
    Messaggi
    438
    Originariamente inviato da blekm
    il test l'hai effettuato online oppure in locale?

    Se l'hai fatto online, devi aspettare che sia caricata COMPLETAMENTE LA PAGINA.

    Se clicchi prima sull'ingrandimento, ti si apre semplicemente nel browser ... prova che ho effettuato personalmente.
    Le prove le sto effettuando in locale, ma sotto IIS, percio' non dovrei avere di questi problemi. Di fatto la pagina caricata singolarmente, funzia!
    La mia paura è che qualche voce dei vari js si accavalli e perda il riferimento......

    Ma tu hai effettuato un lavoro con le stesse caratteristiche del mio ??

    Grazie Symo

  4. #4
    Gli attributi rel vengono trasformati in onclick solo all'onload della pagina. Devi trovare la funzione che fa quel lavoro ed eseguirla anche dopo la richiesta.

  5. #5
    Utente di HTML.it L'avatar di SymX
    Registrato dal
    Nov 2004
    Messaggi
    438
    Originariamente inviato da Mega69
    Gli attributi rel vengono trasformati in onclick solo all'onload della pagina. Devi trovare la funzione che fa quel lavoro ed eseguirla anche dopo la richiesta.
    Non credo di aver capito...... o di essere sicuro di cio che ho capito...

  6. #6
    Prima di tutto ecco come risolvere questo problema:
    codice:
    function trasformaRel() {
    		if (!document.getElementsByTagName){ return; }
    		var anchors = document.getElementsByTagName('a');
    
    		// loop through all anchor tags
    		for (var i=0; i<anchors.length; i++){
    			var anchor = anchors[i];
    			
    			var relAttribute = String(anchor.getAttribute('rel'));
    			
    			// use the string.match() method to catch 'lightbox' references in the rel attribute
    			if (anchor.getAttribute('href') && (relAttribute.toLowerCase().match('lightbox'))){
    				anchor.onclick = function () {myLightbox.start(this); return false;}
    			}
    		}
    }
    Questa funzione, trasformaRel, la richiami dopo che la richiesta ajax è completata.

    Scusa, il fatto è che mo vado di fretta, poi ti spiego il succo della questione.

  7. #7
    Utente di HTML.it L'avatar di SymX
    Registrato dal
    Nov 2004
    Messaggi
    438
    Originariamente inviato da Mega69
    Prima di tutto ecco come risolvere questo problema:
    codice:
    function trasformaRel() {
    		if (!document.getElementsByTagName){ return; }
    		var anchors = document.getElementsByTagName('a');
    
    		// loop through all anchor tags
    		for (var i=0; i<anchors.length; i++){
    			var anchor = anchors[i];
    			
    			var relAttribute = String(anchor.getAttribute('rel'));
    			
    			// use the string.match() method to catch 'lightbox' references in the rel attribute
    			if (anchor.getAttribute('href') && (relAttribute.toLowerCase().match('lightbox'))){
    				anchor.onclick = function () {myLightbox.start(this); return false;}
    			}
    		}
    }
    Questa funzione, trasformaRel, la richiami dopo che la richiesta ajax è completata.

    Scusa, il fatto è che mo vado di fretta, poi ti spiego il succo della questione.
    Ok quindi se ho ben capito, dopo tutte le varie funzioni Ajax ci schiaffo questa, e dovrebbe risolvermi.. Provo subito!
    Intanto ti ringrazio tantissimo, speriamo che mi aiuti a risolvere.

  8. #8
    Utente di HTML.it L'avatar di SymX
    Registrato dal
    Nov 2004
    Messaggi
    438
    Originariamente inviato da Mega69
    Prima di tutto ecco come risolvere questo problema:
    codice:
    function trasformaRel() {
    		if (!document.getElementsByTagName){ return; }
    		var anchors = document.getElementsByTagName('a');
    
    		// loop through all anchor tags
    		for (var i=0; i<anchors.length; i++){
    			var anchor = anchors[i];
    			
    			var relAttribute = String(anchor.getAttribute('rel'));
    			
    			// use the string.match() method to catch 'lightbox' references in the rel attribute
    			if (anchor.getAttribute('href') && (relAttribute.toLowerCase().match('lightbox'))){
    				anchor.onclick = function () {myLightbox.start(this); return false;}
    			}
    		}
    }
    Questa funzione, trasformaRel, la richiami dopo che la richiesta ajax è completata.

    Scusa, il fatto è che mo vado di fretta, poi ti spiego il succo della questione.
    Purtroppo anche modificando i rel con onclick tramite la funzione non sembra funzionare....a meno che non sbaglio qualcosa......

  9. #9
    Utente di HTML.it L'avatar di SymX
    Registrato dal
    Nov 2004
    Messaggi
    438
    C'è qualcuno che sa aiutarmi !? o sa darmi l'alternativa alle div dinamiche con ajax ?!

  10. #10
    La funzione deve essere richiamata dopo che hai scritto il contenuto con innerHTML, non prima.

    Se questo l'avevi già capito, prova a vedere quale errore ti da la console degli errori di firefox.

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.