Come posso chiudere una finestra con Javascript su Mozilla Firefox 3?

Ho bisogno di chiudere la scheda che mostra la mia pagina web, con il semplice clic di un pulsante. Ma Firefox non permette di chiudere la finestra da javascript finché non viene aperto da javascript. Se imposto il valore di dom.allow_scripts_to_close_windows per essere “true”, anche il normale window.close() funziona. Ma questa non è una buona soluzione. 🙁

Ho provato la seguente soluzione suggerita in uno dei forum:

  function closeWindow() { window.open('','_parent',''); window.close(); }  

Dovrebbe ingannare il browser nel pensare che in realtà è stato aperto da javascript, ma questo non funziona in Firefox 3.

Qualcuno può suggerire una soluzione alternativa?

 function closeWindow() { netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite"); alert("This will close the window"); window.open('','_self'); window.close(); } closeWindow(); 

Per motivi di sicurezza, lo script non può chiudere una finestra / scheda che non è stata aperta.

La soluzione è presentare il prompt dell’età in un punto precedente nella cronologia di navigazione. Quindi, puoi scegliere di consentire loro di entrare nel tuo sito o meno in base al loro input.

Invece di chiudere la pagina che presenta il prompt, puoi semplicemente dire “Mi dispiace” o forse redirect l’utente alla loro homepage.

Questo codice funziona sia per IE 7 che per l’ultima versione di Mozilla sebbene l’impostazione predefinita in mozilla non consenta di chiudere una finestra tramite javascript.

Ecco il codice:

funzione F11 () {window.open (”, ‘_ parent’, ”); window.open (“login.aspx”, “”, “channelmode”); window.close (); }

Per modificare l’impostazione predefinita:

1.type “about: config” nella barra degli indirizzi di Firefox e inserisci;

2. assicurati che “dom.allow_scripts_to_close_windows” sia vero

self.close () non funziona, sei sicuro di aver chiuso una finestra e non un popup generato da script?

voi ragazzi potreste voler dare un’occhiata a questo: https://bugzilla.mozilla.org/show_bug.cgi?id=183697

Da un punto di vista dell’esperienza utente, non si vuole che un’azione principale venga eseguita passivamente.

Qualcosa di importante come una finestra chiusa dovrebbe essere il risultato di un’azione da parte dell’utente.

Se la gente del browser lo vede come un problema di sicurezza e / o usabilità, allora la risposta alla tua domanda è semplicemente non chiudere la finestra, dal momento che, per definizione, troveranno comunque soluzioni per la tua soluzione. C’è una bella sumtoria sul motivo per cui la scelta è stata nel database dei bug di Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=190515#c70

Che cosa si può fare?

Cambia le specifiche del tuo sito web, in modo da avere una soluzione per queste persone. Potresti ad esempio prenderlo come un’opportunità per indirizzarlo a un partner.

Cioè, vederlo come un passaggio a qualcun altro che (potenzialmente) ne ha bisogno. Ad esempio, Hanselman aveva un recente articolo su cosa fare nell’altra situazione simile, vale a dire 404 errori: http://www.hanselman.com/blog/PutMissingKidsOnYour404PageEntirelyClientSideSolutionWithYQLJQueryAndMSAjax.aspx

Questo codice funzionerà sicuramente

 function closing() { var answer = confirm("Do you wnat to close this window ?"); if (answer){ netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserWrite'); window.close(); } else{ stop; } }