Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    4

    Script javascript in CGI

    Ciao,
    ho un problema con il seguente script JS che utilizzo all'interno di un file CGI che contiene una form:

    codice:
    'function transfert(){
    	valP=how_to.package.value;
       	valQ=how_to.question.value;
    	valA=how_to.answer.value;
    	//add the template to the existing bug
    		val=opener.Create.comment.value;
    		val=val+"===================\n= How To Template =\n===================\n<template>\n<title>HowToTemplate</title>\n<package>\n\t"+valP+"\n</package>\n<question>\n\t"+valQ+"\n</question>\n<answer>\n\t"+valA+"\n</answer>\n</template>\n";
    		opener.Create.comment.value=val;
    		close(); 
    	}'
    In base al browser che utilizzo ho due comportamenti diversi (ma nessuno dei due che va bene )
    IE: cliccando il pulsante "Validate" la pagina genera questo errore "'opener.Create.comment' is null or not an object"
    Firefox: lo script (penso) funziona correttamente (leggendo le Page Info, nel campo "Forms" i valori inseriti sono stati caricati correttamente), ma invece di inviare i dati alla pagina precedente non avviene niente.
    Il codice del pulsante Validate e' questo:
    codice:
    print  $cgi->submit(-value=>' Validate Template ',-onclick=>'transfert()');
    La form viene aperta e chiusa con questo codice:
    codice:
    print $cgi->start_form(-name=>'how_to', -action=>'javascript:window.history.back()');
    [i vari campi della form]
    print $cgi->end_form;
    Grazie

    /nel codice della form la parola "javascript" non e' separata dal trattino

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Prima di pensare ad altre cose, verifica cosa arriva al browser (click destro > mostra sorgente).

    L'errore potrebbe essere dovuto ad elaborazioni della stringa operate lato server (a tua insaputa).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    4
    Ho confrontato il codice sia di IE che di Firefox e la parte riguardante lo script e' identica (diff).
    Viene elaborata in questo modo:
    codice:
    <script>function transfert(){
    
    	valP=how_to.package.value;
    
       	valQ=how_to.question.value;
    
    	valA=how_to.answer.value;
    
    	//add the template to the existing bug
    
    		val=opener.Create.comment.value;
    
    		val=val+"===================\n= How To Template =\n===================\n<template>\n<title>HowToTemplate</title>\n<package>\n\t"+valP+"\n</package>\n<question>\n\t"+valQ+"\n</question>\n<answer>\n\t"+valA+"\n</answer>\n</template>\n";
    
    		opener.Create.comment.value=val;
    
    		close(); 
    
    	}</script><form method="post" action="javascript:window.history.back()" enctype="application/x-www-form-urlencoded" name="how_to">
    
    
    
    List of PXSOFT packages :</p><select name='package'><option value='adp'>adp</option><option value='ArpWarp'>ArpWarp</option>[...]<option value='XDS'>XDS</option><option value='xia'>xia</option></select>
    
    
    
    Question: </p><textarea name="question" rows="10" cols="78"></textarea>
    
    Answer: </p><textarea name="answer" rows="10" cols="78"></textarea>
    
    <input type="submit" name=".submit" value=" Validate Template " onclick="transfert()"><div></div></form>
    Quando apro la pagina pagina in IE ho anche questo errore:
    "'document.forms.f.quicksearch' is null or not an object"
    che riguarda un parametro del body che e' definito cosi':
    codice:
    <body onload="document.forms['f'].quicksearch.focus();"
            class="scisoft8-8890-pixillaTemp" bgcolor="#EEEEEE">

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Quel codice JS non e` corretto.
    Dovresti quindi farti spostare nel forum JS, dove ti sanno dare informazioni piu` corrette ed aggiornate.

    Viene interpretato (ma non so con quali limitazioni) da IE, ma non dagli altri browser.
    In particolare:
    l'oggetto how_to andrebbe indirizzato con (sintassi per HTML transitional):
    document.forms['how_to'].

    l'oggetto opener potrebbe non venir riconosciuto: la sintassi universale e`:
    window.opener.

    l'oggetto document.forms['f'] corrisponde ad un oggetto HTML del tipo:
    <form name="f" ...>
    Che non so se esiste nella pagina (nel codice postato non lo vedo)
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    4
    Originariamente inviato da Mich_
    Quel codice JS non e` corretto.
    Dovresti quindi farti spostare nel forum JS, dove ti sanno dare informazioni piu` corrette ed aggiornate.
    Ok, grazie per i consigli.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.