Visualizzazione dei risultati da 1 a 4 su 4

Discussione: funzione che non parte

  1. #1
    Utente di HTML.it L'avatar di gasmor
    Registrato dal
    Apr 2004
    Messaggi
    1,768

    funzione che non parte

    Ragazzi penso che il mio sia un errore di concetto...

    in pratica creo una pagina che ha al suo interno una funzione javascript tramite la funzione:

    document.write(mia_pagina_con_funzione_javascript) ;

    però la funzione non parte, devo eseguire il refresh della pagina e poi va

    Da cosa dipende?

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    che ci scrivi in quel doc.write?

  3. #3
    Utente di HTML.it L'avatar di gasmor
    Registrato dal
    Apr 2004
    Messaggi
    1,768
    il codice è immenso, ne posto una parte

    in pratica la funzione viene richiamata da un file esterno così:

    <script src="file/functions.js" type="text/javascript" language="javascript"></script>

    A proposito, se la funzione stava dentro la pagina funzionava, da quando l'ho messa nel file js mi dà questo problema!


    dentro il file *.js c'è questo:
    (ci sono anche altre funzioni. Però è questa la funzione che mi scrive la pagina che funziona correttamente. Ho segnato in rosso
    la funzione che viene richiamata e che non parte)

    codice:
    function Genera(riga,colonna){
    inizio='<HTML>\n<HEAD>\n' +
    '<META http-equiv=content-type content="text/html; charset=iso-8859-1">\n' +
    '<META content="MSHTML 6.00.2800.1458" name=GENERATOR>\n' +
    '<script src="file/functions.js" type="text/javascript" language="javascript"></script\>\n'+
    '<SCRIPT type=text/javascript>\n'+
    'onload=function(){\n'+
    '    Righello("tabella1")\n'+
    '    };\n'+
    '</SCRIPT\>\n'+
    '</HEAD>\n<BODY>\n';
    
    
     menu='<DIV id=inserire style=\"DISPLAY: none\">\n'+
    '<DIV id=pos2 style=\"POSITION: absolute\">\n'+
    '<DIV class=inserireLinks onclick=\"javascript:Righello(\'tabella1\',true,true);\">\n'+
    
    '<form action=\"javascript:Assegna()\" method=post name=form3>\n'+
    '<INPUT TYPE=\'hidden\' name=\"attuale\">\n'+
    '<INPUT TYPE=\'text\' NAME=\'insertext\'>\n'+
    '<INPUT TYPE=\'submit\' value=\'assegna\' onclick=\"inserire.style.display=\'None\'\">\n'+
    '</FORM>\n'+
    '</DIV></DIV></DIV>\n'
    
    	document.write(inizio);
    	  
    	document.write('<form name=frmHidden method=post action="javascript:Genera(document.forms[\'frmHidden\'].elements[\'righe\'].value, document.forms[\'frmHidden\'].elements[\'colonne\'].value);">\n');
    	      for(a=0;a<riga;a++){
    	         for(b=0;b<colonna;b++){ 
    			 
    			 document.write('<INPUT TYPE=text name="'+a+'T'+b+'">\n');
    			 }
    	       }
    	document.write('<span class=PANNELLO>\nRiga:<input type=text name=righe size=2 value='+riga+'>\n\ncolonna:</span>\n<input type=text name=colonne size=2 value='+colonna+'><INPUT TYPE=SUBMIT value=prova></FORM>\n<TABLE id=tabella1 width=640>\n<TBODY>\n');
    	
    	  for(i=0;i<riga;i++){
    	  document.write('<TR>\n');
    	         for(j=0;j<colonna;j++){ 
    			 //sorgente=document.forms['frmHidden'].elements[i+'T'+j].value;
    			 //document.write('<TD>'+i+'T'+j+'</TD>\n');
    			 document.write('<TD></TD>\n');
    			 }
    	  document.write('</TR>\n');
    	  }
    	document.write('</TBODY>\n</TABLE>\n');
    	
    	
    	chiusa = '<form name=form1 method=post>\n<input type=hidden name=selezionato>\n</form>\n</BODY>\n</HTML>';
        document.write(menu);
    
        document.write(chiusa);
    	Righello("tabella1"); 
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Il codice e` molto complesso dal punto di vista concettuale.

    In una pagina HTML chiami uno script (functions.js).

    In tale script hai dei document.write (che quindi scrivono un pezzo della pagina stessa) - sottolineo: scrivono nella stessa pagina.
    Chiaramente in tali document.write() non ci puo` stare un <head>, perche` sarebbe un doppione.
    Quindi dovresti rivedere cosa succede della pagina quando hai eseguito lo script piu` esterno.


    Comunque lasciando stare quel problema (che qualche browser ignora - ma e` un errore del browser), poi tramite document.write() scrivi anche degli script. Al primo </script> trovato lo script principale si chiude, e si aspetta dei codici HTML. Invece il tuo script prosegue.
    Per evitare tale errore, devi spezzare tutte le stringhe che contengono la parola chiave script, ad esempio:
    ... + '<scr' + 'ipt src="file/functions.js" type="text/javasc' + 'ript" language="javasc' + 'ript"></sc' + 'ript\>\n' + ...

    Nota che in tale script viene ricaricato lo stesso script. questo crea una ricorsione che non credo i browser possano supportare.


    Ultima osservazione: questo modo di procedere non e` molto bello: qualche browser (fuori da quelli piu` usati, ad esempio quelli per non vedenti) potrebbe non riuscire a gestire il tutto.
    La cosa migliore sarebbe gestire il montaggio della pagina dal lato server, e fornire al browser una pagina standard.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.