Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    23

    Cambiare dinamicamente il contenuto di un tag

    Mi serviva una funzione in JavaScript per cambiare dinamicamente il contenuto di una pagina.
    Ho quindi scritto questo codice, che secondo tanti tutorial che ho visto, dovrebbe funzionare benissimo, ma ovviamente non va.
    Il codice in questione è questo

    codice:
    function changeContent( my_id, my_url )
    {
    	var XMLHttp = null;
    	XMLHttp = new XMLHttpRequest();
    	XMLHttp.open( "GET", my_url, false);
    	XMLHttp.send( null );
    	var XMLDoc = XMLHttp.responseXML;
    	document.getElementById( my_id ).innerHTML = XMLDoc;
    }
    Credo che ci sia un blocco dello script su "responseXML", ma non sono come ovviare al problema.
    Grazie in anticipo per il vostro aiuto.
    Davide

    Update:
    Modificando le ultime due linee della funzione con:
    codice:
    var text;
    text = XMLHttp.responseText;
    document.getElementById( my_id ).innerHTML = text;
    Ottengo un codice funzionante, ma solo per Firefox, mentre su Internet Explorer e Chrome non funziona.

  2. #2
    Ti funziona evidentemente perchè l'output che ricevi è sottoforma di testo, e non xml.
    Non funziona con gli altri browser perchè a seconda della famiglia di browser c'è una funzione supportata per le chiamate ajax.
    Es di funzioni disponibili:
    - XMLHttpRequest()
    - ActiveXObject("Msxml2.XMLHTTP")
    - ActiveXObject("Microsoft.XMLHTTP").
    Di sicuro ce ne saranno altre, perchè queste si riferiscono a diversi anni fa.

    Il mio consiglio è di utilizzare un framework tipo mootools o jquery, così non devi preoccuparti di testare il browser e la relativa versione, lo fanno loro in automatico e a te non resta che utilizzare le loro funzioni che tra l'altro sono immediate e semplici da utilizzare.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    23
    Io sono completamente nuovo alla programmazione web, quindi pensavo che javascript fosse la scelta più azzeccata per questo genere di manipolazione delle pagine.
    Ma Jquery è in pratica un Javascript più cross-platform?

  4. #4
    Definizione di framework: http://it.wikipedia.org/wiki/Framework
    Cos'è jquery: http://www.html.it/pag/18382/introduzione63/

    Quindi jquery è un framework scritto in javascript per sviluppare in javascript, e tra le tante cose che implementa c'è anche il cross-platform.
    Infatti se devi eseguire una chiamata in POST ad un url basta fare:
    codice:
    $.ajax({
      type: 'POST',
      url: url,
      data: data,
      success: success,
      dataType: dataType
    });
    quindi a te non interessa che l'utente apra la pagina con FF, IE opera, ecc, ecc...

    Cosa intendi con:
    quindi pensavo che javascript fosse la scelta più azzeccata per questo genere di manipolazione delle pagine.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    23
    Grazie per i link, ma so bene cosa sia un Framework, ne ho usati tanti in altri linguaggi (soprattutto C++). :'D
    Volevo sapere solo quale era lo scopo di JQuery.
    Con quella frase che citi tu intendevo dire che pensavo che Javascript fosse naturalmente più cross-platform su operazioni base come la modifica dinamica del DOM, soprattutto con i browser moderni, ma evidentemente mi sbagliavo.
    Ora leggo la guida di HTML.it e grazie per il consiglio.

  6. #6
    Il problema non è del javascript, il problema è dei browser, perchè non tutti seguono gli standard in modo rigido ed alcuni implementano delle funzionalità proprietarie che altri browser non hanno.

    Di niente .
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    23
    Originariamente inviato da codencode
    Il problema non è del javascript, il problema è dei browser, perchè non tutti seguono gli standard in modo rigido ed alcuni implementano delle funzionalità proprietarie che altri browser non hanno.
    Grazie al tuo consiglio sono passato a jQuery, e con questo semplice codice
    codice:
    function changeContent( my_id, my_url )
    {
    	$('#' + my_id).load(my_url);
    }
    faccio tutto quello che mi serve, ma il problema di compatibilità continua ad esserci.
    Il codice va bene su IE e Firefox, mentre su Chrome no.
    A quanto ho letto è una scelta di Chrome non dare la possibilità di accedere in questo modo ai file su disco.

    Update: Avviando l'eseguibile di Chrome con --allow-file-access-from-files funziona, ma non mi pare la scelta migliore.

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Non mi risulta che chrome abbia problemi con ajax o jquery posta il link alla pagina pubblica

    P.S. Se provi il sito in locale il problema potrebbe essere quello, usa un webserver free (tipo altervista.org) per testare/provare le pagine
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    23
    Originariamente inviato da cavicchiandrea
    Non mi risulta che chrome abbia problemi con ajax o jquery posta il link alla pagina pubblica

    P.S. Se provi il sito in locale il problema potrebbe essere quello, usa un webserver free (tipo altervista.org) per testare/provare le pagine
    Ho provato a "hostarlo" su dropbox e il problema persiste.
    Il problema non è di incompatibilità, ma di sicurezza, explorer mi chiede conferma per attivare il codice javascript e chrome non mi chiede proprio niente e per visualizzare la pagina correttamente devo usare il parametro che ho menzionato più sopra.
    E poi mi serve per creare un CD con contenuto multimediale, quindi per forza file su supporto fisico devono essere...

  10. #10
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Non credo che dropbox sia un server web e comunque difficilmente potrai utilizzare js jquery ajax in un CD dato che come ho già detto necessitano di un protocollo server web, secondo me devi trovare un altra strada tipo c++ o java
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.