Newsgroup: it.comp.lang.javascript
Titolo: Non riesco a includere un file js in una finestra aperta con window.open

Ciao a tutti,
Ho scritto del codice che mi stà dando parecchi problemi.... Dovrei, alla
pressione di un bottone, richiamando una funzione js, aprire una pagina
(creata dinamicamente) in cui creo dei bottoni a cui è associato una
funzione all'evento onclick.... Per far questo ho creato una pagina
prova.htm, e un file ifm.js in cui ho scritto tutte le funzioni. Il problema
è che quando provo a inserire nella pagina creata il tag che include il file
ifm.js si genera un errore e nella finestra aperta non viene visualizzato
niente. Se non includo il file la pagina è visualizzata correttamente ma
ovviamente non è richiamata la funzione associata al tasto... CHE
MACELLO!!!! Cmq vi posto il codice che magari chiarisce un po' la
situazione...:)
--file prova.asp
<%x=5
impcontratto=1.02
lung=12
%>
<SCRIPT language="javascript" SRC="ifm.js"><!--
file://--></SCRIPT>
<FORM>
   <INPUT TYPE="button" VALUE="Grazie"
onClick="parametro(<%=x%>,<%=impcontratto%>,<%=lung%>)">
</FORM>
--file ifm.js
file://tipo:0 importo,1 lunghezza; operazione:0 somma, 1 differenza; flag:0
somma unità, 1 somma centesimi;
function somma(tipo,operazione,flag) {
   alert('passa tutto!!!');
}
function parametro(y,impcontratto,lung)
{
   fin =
window.open("about:blank","fin","width=400,height=200,toolbar=no,dependent=y
es");
   fin.document.write('<HTML><TITLE>Interactive Football
Manager</TITLE><BODY><SCRIPT SRC="ifm.js"></SCRIPT> ');
   fin.document.write('<TABLE BORDER=1 id = "importo" WIDTH=300>');
   fin.document.write('<TR><TD>Importo annuale contratto</TD><TD>Lunghezza
contratto</TD></TR></TABLE>');
file://fin.document.write(fin.document.getElementById('importo').childNodes[
0].ch
ildNodes[0].childNodes[0].childNodes[0].nodeValue);
   if (fin.document.getElementById) {
     file://Inserisco nella tabella i valori dell'importo annuale e della
lunghezza del contratto
     var newTBODY1    = fin.document.createElement("TBODY");
     var newTRvalori  = fin.document.createElement("TR");
     file://crea il campo importo
     var newTDimporto = fin.document.createElement("TD");
     var newTextimporto = fin.document.createTextNode(impcontratto+' Mld');
     newTDimporto.appendChild(newTextimporto);
     newTRvalori.appendChild(newTDimporto);
     file://crea il campo lunghezza
     var newTDlunghezza  = fin.document.createElement("TD");
     var newTextlunghezza = fin.document.createTextNode(lung+' Mesi');
     newTDlunghezza.appendChild(newTextlunghezza);
     newTRvalori.appendChild(newTDlunghezza);
     file://appende la riga alla tabella
     newTBODY1.appendChild(newTRvalori);
     fin.document.getElementById('importo').appendChild(newTBODY1);
   }
   fin.document.write('<TR><TD><INPUT TYPE="button" VALUE="+"
onClick="somma(0,0,0)"> </TD></TR>');
   fin.document.write('</TABLE>');
   fin.document.write('<form action="message.asp" method="POST"><input type
= "hidden" name = type value = "4"><input type = "hidden" name = indoff
value = "'+y+'">');
   fin.document.write('<input type = "submit" name = "submit" value =
"Conferma" ></form>');
   fin.document.write('</BODY></HTML>');
}
Ho anche altri 2 piccoli problemini....Visto che ci sono:)
PRIMO: la pagina aperta deve visualizzare una tabella in cui nella prima
riga ci sono le intestazioni, nella seconda dei valori numerici, nella terza
dei pulsanti "+" e "-" che servono per incrementare i valori numerici della
riga sopra... Il problema è che non riesco a far visualizzare i bottoni
nella terza riga(ora il pulsante è visualizzato al difuori della tabella).
Se elimino il tag </TABLE> dalla 6° riga della funzione parametro,
teoricamente i pulsanti dovrebbero essere visualizzati nella terza riga,
invece non visualizza nemmeno la tabella!!Misteri della fede:)
SECONDO PROBLEMA: questo script è compatibile solo con IE5 e NN6. Il
problema è che non so come "tradurre" x NN4 e IE3 cose del tipo childNode,
appendChild....(la parte di codice x creare elementi HTML e
visualizzarli)(ad esempio so che bisogna sostituire getElementByID con
layers per renderlo compatibile con NN4). Ho spulciato tutti i tutorial su
jsdir ma sono incentrati su NN6 e IE5 e non dicono praticamente niente
riguardo i browser precedenti. Dove trovo documenti(in italiano
possibilmente, il mio inglese è mortale:)  x NN4 e IE3 che spiegano queste
cose (basterebbe l'equivalente dei tutorial di jsdir su IE5 e  NN6). Non
fare caso ai tag asp, servono x simulare dati che saranno presi da  un
database....
Scusate della lunghezza del messaggio ma sono bloccato da giorni....:)
grazie e a presto
Gianluca

 situazione...:)
Esempio..........
file clicca.js contenete...
function clicca(){
alert('ciao')
}
file che apre una nuova window , scrive il button e richiama il file
clicca.js...........
<html>
<head>
<title>test</title>
<script language="javascript">
function apri(){
aa=window.open('about:blank')
aa.document.write('<head>')
aa.document.write('<script src="clicca.js"></scri'+'pt>')
aa.document.write('</head>')
aa.document.write('<body>')
aa.document.write('<form>')
aa.document.write('<input type="button" value="clicca" onClick="clicca()">')
aa.document.write('</form>')
aa.document.write('</body>')
aa.document.close();
}
</script>
</head>
<body>
<p><a href="javascript:apri();">apri</a></p>
</body>
</html>
andreotta fabiano
 WebMªster ATI POWER s.n.c.
 
andr...@atipower.it
 
http://www.atipower.it
 
http://www.aticommerce.com
 
http://www.afdsoftware.freeweb.org
 
http://www.jsdir.com
 
http://www.javascript.3000.it

 aa.document.write('<script src="clicca.js"></scri'+'pt>')
Non č la stessa cosa che scriverlo cosě (come ho fatto e non funziona..)?
Che differenza c'č con il mio? Forse il tag script non va messo all'interno
del tag body??? Perchč scrivi </scri'+'pt> al posto di </script>?
fin.document.write('<HTML><TITLE>Interactive Football
Manager</TITLE><BODY><SCRIPT SRC="ifm.js"></SCRIPT> ');
Grazie mille comunque!!!


Come l'ho fatto io funziona perchè l'ho provato , se non lo spezzi te lo
prende come termine dello script corrente e il codice va a farsi benedire!!


 prende come termine dello script corrente e il codice va a farsi
benedire!!
Allora sicuramente sarà quello il problema.... Adesso provo e ti faccio
sapere
cmq grazie 1000!!!
Gian