Newsgroup: it.comp.lang.javascript
Titolo: apertura nuova pagina

ho creato una funzioncina che deve rimandarmi ad un file pdf ma vorrei che 
tale file si aprisse in un'altra finestra, una finestra blank e non quella 
di origine dello script. Non so come si scrive il codice in javascript.
Per il momento mi sono limitato a richiamare il file, ma ovviamente viene 
aperto all'interno della stessa finestra e questo non lo voglio.
Ecco la parte di codice:
window.location.href = "immagini/28meseprevenzione.pdf";
ps: so che potrei creare una nuova finestra del tipo:
var nuovaFinestra = window.open("nuova","file.pdf",widht=300 height=300);
ma se possibile preferivo accedere alla proprietą _blank
ciao Summonix

"Summonix" <SP...@SPAM.com> ha scritto
Ho risolto:
document.getElementById("spazioAnim").onclick = function(){
var nuovaFinestra = window.open("immagini/mioFile.pdf");
}
ciao Summonix 

 var nuovaFinestra = window.open("nuova","file.pdf",widht=300 height=300);
Prova un po' cosě:
	window.open("about:blank").location.href = "file.pdf";
-- 
~ "Un uomo č piů 'grande' di un altro solo se sale sulle sue spalle."
(Bertold Brecht)

 window.open("about:blank").location.href = "file.pdf";
Funziona! Ho provato anche:
window.open().location.href = "file.pdf";
e funziona ugualmente, ma l'ho testato con IE e Firefox, non so con altri.
Comunque volevo chiedere lumi sulla sintassi.
Allora oggetto window al quale si applica il suo metodo open(). Io perň ero 
abituato, per quel nulla che so di javascript, a vedere il metodo come 
ultimo elemento dell'espressione di riferimento, ossia all'estrema destra 
del riferimento. Qui invece abbiamo l'oggetto window, a cui segue il suo 
metodo e poi ancora l'oggetto location con l'attributo href, il tutto in 
un'unica espressione. E' un'eccezione oppure son io che devo ancora 
studiare? :-)
ciao Summonix

 dell'espressione di riferimento, ossia all'estrema destra del
Basta leggere l'espressione da sinistra a destra:
Prendi window, richiama il metodo open(), che restituisce "qualcosa". Di 
questo qualcosa accedi all'attributo location, che e` una struttura dati 
che ha un "sottoattributo" href. A quest'ultimo applica il valore 
"file.pdf".
Credo sia stato JS a rendere "famosa" la programmazione di tipo fluente, 
in cui ogni setter di un oggetto ritorna l'oggetto stesso, proprio 
sfruttando questa concatenazione di funzioni. Per esempio la sfrutta molto 
jQuery:
$("#error").append("#testoerrore").fade().onclick(function()...)
ecc. ecc.
Bye.

 studiare? :-)
La seconda che hai detto. :)
Te l'ha già spiegata Alessandro, comunque non è niente di così
particolare, è solo programmazione a oggetti. Sicuramente, sei
più abituato a qualcosa del genere:
	var wn = window.open("about:blank");
	wn.location.href = "file.pdf";
Ma se non ti "sconvolge" questa sintassi, non dovrebbe neanche
"sconvolgerti" l'altra, dato che sono la stessa identica cosa.
In sostanza "window.open()" ti restituisce il riferimento alla
finestra appena creata. Tu sei solito metterlo in variabile, e
poi invocarne metodi e proprietà. Ma nulla ti vieta d'invocare
tali metodi e proprietà direttamente; è la stessa cosa.
Questo vale per ogni cosa. Ovviamente se devi usare più di una
proprietà o metodo, ti conviene salvare tutto in variabile:
	// poco performante a livello crossbrowser:
	document.getElementById("mydiv").style.border="1px solid red";
	document.getElementById("mydiv").style.display = "block";
 
	document.getElementById("mydiv").innerHTML = "a text";
	// preferibile:
	var nd = document.getElementById("mydiv"), st = nd.style;
	st.border	= "1px solid red";
	st.display	= "block";
	nd.innerHTML	= "a text";
In questo caso specifico potrebbe anche essere meglio qualcosa
del tipo:
	var nd = document.getElementById("mydiv");
	nd.className	= "aRedBlockDiv";
	nd.innerHTML	= "a text";
-- 
~ "L'unico requisito necessario affinchè il male si diffonda,
è che le persone per bene non facciano nulla." (Edmond Burke)

 "file.pdf".
capito, non pensavo si potesse, ma come logica mi torna.
Quindi potrei anche scrivere:
var nuovaFinestra = window.open().location.href = "file.pdf";
tanto per avere anche un riferimento diretto alla nuova finestra?
ciao Summonix 

 nd.innerHTML = "a text";
Roba troppo evoluta per le mie tasche...
Volo a studiare... zzzzzzzzzzig! :-D
ciao Summonix

 
-- 
"Se c'č qualcosa di piů importante del mio ego su questa nave,
la voglio catturata e fucilata."

 tanto per avere anche un riferimento diretto alla nuova finestra?
Eh no. Ti č stato detto di leggere l'espressione da sinitra a destra:
quindi in "nuovaFinestra" avresti il valore stringa "file.pdf", e non
certo il riferimento alla finestra appena aperta. Se tu avessi voluto
avere il riferimento, avresti dovuto fare qualcosa del tipo:
        ( nuovaFinestra = window.open() ).location.href = "file.pdf";


        ( nuovaFinestra = window.open() ).location.href = "file.pdf";
Hai ragione, scusa, anche rileggendomi mi sono accorto di avere detto una 
fesseria, ed ho compreso la sintassi del tuo esempio.
Grazie Summonix 

 ha scritto

Allora, non ci crederai ma mi č chiaro tutto quello che hai scritto. Il 
sistema di assegnare un riferimento del tipo 
document.getElementById("nomeId") ad una variabile da riutilizzare 
all'occasione per non ripetere tutta la filastrocca lo uso da tempo anche 
io, soltanto che, vedi l'ignoranza e quanto poco basta per andare in tilt, 
non conoscevo la sintassi:  var a = 1, b = 2, c = 3, d;
e da qui non riuscivo a capire l'espressione var nd = 
document.getElementById("mydiv"), st = nd.style;
Mi č tutto chiaro adesso. Se non ci credi fammi un test! :-P
Grazie mille anche per le referenze, ho anche un buon librone su cui 
studiare ma l'ho aperto da poco...
ciao Summonix