2013-10-10 15 views
5

Desidero chiudere la scheda di Firefox da JavaScript. Per favore non fraintendermi. Non sto cercando di chiudere la finestra popup ma la scheda. So che JavaScript non può chiudere la finestra che non è stata aperta. Pertanto ho provato sotto il codice ma funziona su tutti i browser ma non su Firefox.Chiudi la scheda firefox da javascript

window.open('','_self',''); 
Window.close(); 
+0

Non è possibile a meno che la finestra ha un genitore. Firefox aggiornato in questo modo in una delle versioni in cui hanno bloccato la finestra chiusa senza la finestra genitore –

+0

https://support.mozilla.org/en-US/questions/966137 È possibile solo chiudere finestre popup in Firefox, non nel browser oppure la scheda del browser – Rohit

risposta

3

Ecco qualcosa che ho imparato da un thread StackOverflow (purtroppo non sono riuscito a trovare a un collegamento a questa risposta):

window.open(document.URL,'_self','resizable=no,top=-245,width=250,height=250,scrollbars=no'); 
window.close(); 

Questo chiude la finestra/tab. Può essere caratterizzato come un hack. In sostanza, fa credere al browser che la finestra corrente sia una finestra/scheda aperta da JavaScript. Poiché la regola sembra essere che JavaScript può chiudere una finestra che è stata aperta da JavaScript.

Funziona in Chrome, Firefox. Internet Explorer ha bisogno di un piccolo trattamento aggiuntivo per tenere conto dei vari comportamenti da IE 6 a IE 8+. Lo sto includendo anche se qualcuno è interessato.

  var Browser = navigator.appName; 
      var indexB = Browser.indexOf('Explorer'); 
      if (indexB > 0) { 

       var indexV = navigator.userAgent.indexOf('MSIE') + 5; 
       var Version = navigator.userAgent.substring(indexV, indexV + 1); 

       if (Version >= 7) { 
        window.open('', '_self', ''); 
        window.close(); 
       } 
       else if (Version == 6) { 
        window.opener = null; 
        window.close(); 
       } 
       else { 
        window.opener = ''; 
        window.close(); 
       } 
      } 
      else { 
       window.close(); 
      } 
+3

Grazie per la tua rapida risposta ma il codice sopra non sembra funzionare in FF 24. Per altri browser ho il codice ma è solo il problema con FF 24. Il problema con l'ultimo browser FF è che loro può identificare che se la finestra che si apre da JS è una finestra popup o una finestra nel browser. Quindi il codice gievn non funzionerà. window.open (document.URL, '_ self', 'resizable = no, top = -245, width = 250, height = 250, scrollbars = no'); window.close(); – user2867978

+0

Sembra che abbiano ulteriormente rafforzato il [modello di sicurezza JS] (https://support.mozilla.org/en-US/questions/966137) in FF. –

+0

Immagino tu intenda questa domanda: http://stackoverflow.com/questions/2076299/how-to-close-current-tab-in-a-browser-window Forse questa domanda dovrebbe essere contrassegnata come duplicata. – user2345998

5

Se si dispone di una singola pagina/pochi utenti e si ha accesso al Firefoxes è possibile modificare le impostazioni about:config.

dom.allow_scripts_to_close_windows = true 

Questo potrebbe essere un grosso problema di sicurezza!

(testato con Firefox 27 su Linux)

2

Si può provare questo codice. Se è un browser Firefox.

gBrowser.removeCurrentTab();

Problemi correlati