Domanda

Ho uno script utente greasemonkey con questa singola riga di codice ...

window.close();

ma firefox non consente a uno script utente di chiudere una finestra (come riportato da un messaggio di errore nella console degli errori)

Esiste un modo per aggirare questo problema?

È stato utile?

Soluzione

È necessario modificare le impostazioni di configurazione di Firefox (about: config) per consentirlo.

Passi:

  1. Vai alla barra degli indirizzi e digita about:config
  2. Vai al parametro dom.allow_scripts_to_close_windows
  3. Imposta il suo valore come vero

Ora il tuo script può chiudere la TAB con 'window.close ()'

ad es.

function closeTab(){
    window.open('', '_self', '');
    window.close();
} 

Altri suggerimenti

Poiché Firefox tratta il codice Greasemonkey con gli stessi privilegi del codice dello script su siti Web esterni, non è possibile consentire solo al codice Greasemonkey di chiudere le finestre, ma non a script regolari.

Ormai alcuni -monkies consentono l'uso dell'opzione @grant per sbloccare ufficialmente comandi come window.close () senza andare a about: config . Ad esempio, in Tampermonkey :

// @grant window.close
// @grant window.focus

(Quest'ultimo concedi ti consente di ri-focalizzare il browser sulla tua finestra.) Ciò eliminerebbe l'errore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top