Newsgroup: it.comp.lang.javascript
Titolo: Close Window

Ciao a tutti! Vi scrivo perchè risolvere un problema da niente (non per me
che sono un neofita). Ho creato una finestra pop up che si apre
automaticamente non appena viene caricata una determinata pagina. Al suo
interno ho inserito un bottone ... cliccandoci dovrebbe far chiudere la
pagina.
Sul pulsante ho inserito lo script "javascript:window.close();". Il
risultato è che cliccando sul bottone appare una finestra di avviso che dice
che il browser sta cercando di chiudere la finestra chiedendomi se voglio
peroseguire con l'operazione. Insomma funziona, solo che vorrei non
apparisse nessuna finestra di avviso o altre baggianate.
Vorrei si chiudesse subito e basta!
Buona serata,
Lello

ciao Lello
eh vecchia storia: una delle più gettonate :)
Il window.close() non ti lancia alcuna box di conferma SOLO se la finestra
su cui è inserito il comando è una finestra avviata tramite javaScript:
var t=window.open(bla bla)
su quella puoi inserire il bottone, o dalla fin madre dire t.close()
ma non puoi chiudere via script la finestra con la quale l'utente ha avviato
la navigazione senza incontrare quell'avviso.
Il motivo è un banale motivo di sicurezza: un sito potrebbe chiuderti la
finestra madre (e con questo farti perdere qualcosa di più che una banale
visualizzazione del sito di Cyndy Crawford...: potrebbe farti perdere una
sessione e magari una transazione economica, solo tramite... javaScript!).
Per cui non si può chiudere la finestra "madre" tramite script senza passare
per quel confirm.
ciao
Alberto

Ad esempio:
<script language="JavaScript"><!--
var t=window.open();
t.document.write("<body><form><input type='button' value='chiudi'
onClick='window.close()'></form></body>");
t.document.close()
//--></script>
funziona.
ciao
Alberto

[TrueLies] ha scritto

<a href="javascript:d=window.self;d.opener=window.self;d.close();">chiuditi</a>
--
visuddhi { info(at)
visuddhi.com
 }
if it is to be, it is up to me { 
www.visuddhi.com
 }
{ icq# 44339752 }

Grazie! Ha funzionato subito e benissimo!
Buon lavoro,
Lello

Ciao Alberto! Ti ringrazio molto per avermi risposto ... ho fatto giusto un
paio di prove, ma poi ho optato per la stringa che ha postato visuddhi che
ha funzionato molto bene!
Ti ringrazio comunque per l'attenzione!
Ciao e buon lavoro,
Lello

 Lello
Saro' pignolo ma insisto per l'ennesima volta: questo e' un bug (che
peraltro sfrutti con meno lacchezzi).
Essendo un bug, lo script di cui funziona solo su certe versioni di certi
browser su certi sistemi operativi.
Non hai assolutamente il controllo e la certezza di cio' che accade.

 [TrueLies] ha scritto
(...)


E, ovviamente, traendo le debite conseguenze nello sfruttamento di questo
bug (che lo sia non v'è dubbio: a che pro implementare un close() solo su
opener con quel vistoso confirm, se poi bastava affidare la proprietà opener
alla finestra per aggirarlo?) , riduciamo lo snippet al suo minimo:
<a href="javascript: window.opener=window; close();">chiuditi</a>
ciao e di nuovo buon natale a tutti (fra poco parto, lasagne dalla nonna...
che ce voi fa'...)


 ciao)
auguri anche a te.
vorrei ricordarti che ognuno è quello che è. accettiamo gli altri per come sono
e non cerchiamo di farli diventare come noi stessi.
auguro buon natale a tutti gli altri, che non considero "coglioni", non mi è mai
passato dalla testa, e continuerò a collaborare a modo mio, senza tante parole.
anche perchè con questo post le ho spese per tutto il prossimo anno! :)


 eseguirsi SOLO se esiste un self.opener, cioè se il self.opener!=null
cio' solleva evidentemente dei seri dubbi sull'accuratezza con cui e' stato
progettato il motore di scripting in un certo browser
oppure, che sia la classica backdoor che in ambienti a stelle e strisce
consente comunque un intervento del tipo "brute force"?? mmhh :/
~~
artemis.alpeia
Buon S.to Stefano! *<:{)}