Sandeep Datta
Sandeep Datta

Reputation: 29355

How do I close a firefox tab from a greasemonkey script?

I have a greasemonkey user script with this single line of code...

window.close();

but firefox does not allow a user script to close a window (as reported by an error message in the error console)

Is there a work around to this problem?

Upvotes: 19

Views: 16239

Answers (3)

DDRRSS
DDRRSS

Reputation: 350

By now some of the -monkies allow the use of @grant option to officially unlock commands like window.close() without going to about:config. For example, in Tampermonkey:

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

(The latter grant allows you to re-focus the browser on your window.) This would remove the error.

EDIT: As @baptx correctly mentions in the comments, the browser's security options should be set to allow scripts to close windows, too.

Upvotes: 7

Tom
Tom

Reputation: 49

Since Firefox treats Greasemonkey code with the same privilages as the script code on external websites, it is not possible to only allow Greasemonkey code to be able to close the windows, but not regular scripts.

Upvotes: 4

M.N
M.N

Reputation: 11078

You need to change configuration settings of Firefox (about:config) to allow this.

Steps:

  1. Go to address bar and type about:config
  2. Go to parameter dom.allow_scripts_to_close_windows
  3. Set its value as true

Now your script can close the TAB with 'window.close()'

eg.

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

Upvotes: 32

Related Questions