Как закрыть вкладку firefox из greasemonkey script?

У меня есть пользователь greasemonkey script с этой единственной строкой кода...

window.close();

но firefox не позволяет пользователю script закрыть окно (как сообщается сообщением об ошибке в консоли ошибок)

Есть ли проблема в этой проблеме?

Ответ 1

Вам нужно изменить настройки Firefox (about: config), чтобы разрешить это.

Шаги:

  • Перейдите в строку адреса и введите about: config
  • Перейдите к параметру dom.allow_scripts_to_close_windows
  • Установите значение true

Теперь ваш script может закрыть TAB с помощью 'window.close()'

например.

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

Ответ 2

Так как Firefox обрабатывает код Greasemonkey с теми же привилегиями, что и код script на внешних сайтах, невозможно только разрешить код Greasemonkey закрывать окна, но не обычные скрипты.

Ответ 3

К настоящему времени некоторые из -monkies позволяют использовать опцию @grant для официальной разблокировки таких команд, как window.close(), без перехода к about: config. Например, в Tampermonkey:

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

(Последний грант позволяет вам перефокусировать браузер на вашем окне.) Это позволит устранить ошибку.