Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    379

    javascript nell'innerHTML

    La domanda sarà banale ma spero di spiegarmi bene.

    Attravero una funzione in javascript, utilizzando l'innerhtml, carico una pagina x in una div [content]. Il fatto è che se questa nuova pagina contiene javascript, questo non viene eseguito e quindi il funzionamento d'essa è danneggiato.

    Ce modo di rimediare a questo mio problema?

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    379
    forse effettivamente non mi sono spiegato! quindi voglio fare un esempio.
    jerrylib è una funzione in ajax che mi permette di caricare una pagina all'interno di un contenitore con un id dato.

    Codice PHP:
    <?php if($_GET['a']==1){ ?>
    <div id="invio_mail_div">Entro 
        <span id="cont_rov">10.0</span> 
    secondi verr&agrave; inviata un e-mail all'indirizzo specificato precedentemente...
    </div>

    <script type="text/javascript">
        function invio_email(){
        var utenti = jerrylib("<?=$x_index?>registrazione.php?controllo_user=1&step=attivazione&invio_att=1","invio_mail_div","img/loader/loader");
        }
        var decimi=0;var secondi=10;    
        function contaRov(){
          if (secondi >= 0){
            if (decimi <= 0){
               decimi=9;
               secondi-=1;
            }else{
               decimi-=1;
               document.getElementById('cont_rov').innerHTML=secondi+"."+decimi;           
            }
            setTimeout("contaRov()",100);
          }else{
              invio_email();
          }  
        }contaRov();
    </script>

    <?php exit(); }?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head><title>Il Regno di Narsil</title>
    <script type="text/javascript" src="new_narsil/lib/jerry.lib.js"></script>
    </head>
    <body id="content">
    <input class="bottoni" onFocus="this.blur()" onClick="jerrylib('prova.php?a=1','content',false);" type="button"></div>
    </body>
    </html>
    ecco anche il file js che includo!
    Codice PHP:
    function jsubmit(file,target,loader,method){

        var 
    num document.forms[0].elements.length;
        var 
    url "";

        
    //radio button 
        
    var 0;
        var 
    0;
        var 
    radio_buttons = new Array();
        var 
    nome_buttons = new Array();
        var 
    the_form window.document.forms[0];
        for(var 
    i=0i<the_form.lengthi++){
            var 
    temp the_form.elements[i].type;
            if ( (
    temp == "radio") && ( the_form.elements[i].checked) ) { 
                
    nome_buttons[a] = the_form.elements[i].name;
                
    radio_buttons[j] = the_form.elements[i].value
                
    j++; 
                
    a++;
            }
        }
        for(var 
    0radio_buttons.lengthk++) {
            
    url += nome_buttons[k] + "=" radio_buttons[k] + "&";
        }
        
    //checkbox
        
    var 0;
        var 
    0;
        var 
    check_buttons = new Array();
        var 
    nome_buttons = new Array();
        var 
    the_form window.document.forms[0];
        for(var 
    i=0i<the_form.lengthi++){
            var 
    temp the_form.elements[i].type;
            if ( (
    temp == "checkbox") && ( the_form.elements[i].checked) ) { 
                
    nome_buttons[a] = the_form.elements[i].name;
                
    check_buttons[j] = the_form.elements[i].value
                
    j++; 
                
    a++;
            }
        }
        for(var 
    0check_buttons.lengthk++) {
            
    url += nome_buttons[k] + "=" check_buttons[k] + "&";
        }
        for (var 
    0numi++){
            
            var 
    chiave document.forms[0].elements[i].name;
            var 
    valore document.forms[0].elements[i].value;
            var 
    tipo document.forms[0].elements[i].type;

            if ( (
    tipo == "submit") || (tipo == "radio") || (tipo == "checkbox") ){}
            else {
                
    url += chiave "=" valore "&";
            }
        }
        var 
    parameters url;
        
    url file "?" url;
        if (
    method == undefined) { method "GET";     }
        if (
    method == "GET") { jerrylib(url,target,loader,'',method); }
        else { 
    jerrylib(file,target,loader,'',method,parameters); }
    }

    function 
    jerrylib(urltargetloaderdelaymethodparameters) {

      if (
    method == undefined) { 
          if(
    loader){
            
    document.getElementById(target).innerHTML '[img]'+loader+'.gif[/img]';
          }
          if (
    window.XMLHttpRequest) {
            
    req = new XMLHttpRequest();
          } else if (
    window.ActiveXObject) {
            
    req = new ActiveXObject("Microsoft.XMLHTTP");
          }
          if (
    req) {
            
    req.onreadystatechange = function() {
                
    jerrydone(urltargetdelaymethodparameters);
            };
            
    req.open("GET"urltrue);
            
    req.send("");
          }  
      }
      if ( (
    method == "GET") || (method == "get") )
      {
          if(
    loader){
            
    document.getElementById(target).innerHTML '[img]'+loader+'.gif[/img]';
          }
          if (
    window.XMLHttpRequest) {
            
    req = new XMLHttpRequest();
          } else if (
    window.ActiveXObject) {
            
    req = new ActiveXObject("Microsoft.XMLHTTP");
          }
          if (
    req) {
            
    req.onreadystatechange = function() {
                
    jerrydone(urltargetdelaymethodparameters);
            };
            
    req.open(methodurltrue);
            
    req.send("");
          }
      }

      if ( (
    method == "POST") || (method == "post") )
      {
          if(
    loader){
            
    document.getElementById(target).innerHTML '[img]'+loader+'.gif[/img]';
          }
          if (
    window.XMLHttpRequest) {
            
    req = new XMLHttpRequest();
          } else if (
    window.ActiveXObject) {
            
    req = new ActiveXObject("Microsoft.XMLHTTP");
          }
          if (
    req) {
            
    req.onreadystatechange = function() {
                
    jerrydone(urltargetdelaymethodparameters);
            };
            
    req.open(methodurltrue);
            
    req.setRequestHeader("Content-type""application/x-www-form-urlencoded");
            
    req.send(parameters);
          }
      }
    }  

    function 
    jerrydone(urltargetdelaymethodparameters) {
      if (
    req.readyState == 4) { 
        if (
    req.status == 200) { 
          
    document.getElementById(target).innerHTML req.responseText;
        } else {
          
    document.getElementById(target).innerHTML="Errore di caricamento dei dati:\n"+req.statusText;
        }
      }


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

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Scusa, ti ho linkato una discussione sbagliata

    Vedi qui:
    http://forum.html.it/forum/showthrea...readid=1071699

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    379
    Innanzitutto grazie mille delle risposte. Ora, il fatto è che sono alle prime armi con questa lingua. C'è qualcuno che potrebbe cortesemente darmi una mano nell' implementare cio che è stato detto nell'altro threado darmi delle indicazioni per poterlo fare da me?

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

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    379
    mi sono dato un po da fare e sono riuscito ad implementare il codice della altro topic nella mia funzione ajax. Ora riesco ad eseguire correttamente funzioni quali alert() o comunque funzioni che non facciano riferimento diretto al documento richiamato tramite ajax. Non riesco tuttavia a far funzionare un banale document.write e credo che il problema sia nel document perchè non lo riconosce correttamente il file nel quale viene eseguito il codice. Ce un modo per ovviare il mio problema? :master:

  9. #9
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    aggiungi questa funzione execJS al tuo js esterno e cambia
    document.getElementById(target).innerHTML = req.responseText;
    in
    document.getElementById(target).innerHTML = execJS(req.responseText);

    ciao

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    379
    grazie della risposta. anche io ho fatto una cosa del genere; tuttavia appena provo ad eseguire dei document.write, execJS mi salta l'operazione:

    document.getElementsByTagName("head")[0].appendChild(s);

    xke esegue il codice nel head ce modo di far eseguire il codice nel punto giusto?

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.