alianos-
alianos-

Reputation: 916

How know if a window can be closed with js

So as it has been discussed elsewhere, a window can be closed by js using window.close() only if it has been opened by a script.

I have a page that offers a button to open a discussion window. The discussion window opens to a new tab with window.open(). The discussion page has a button that calls window.close(), which closes the discussion window and takes you back to previous tab, so you can continue from where you left off.

The problem is that if someone takes a the url directly to the discussion window, the close button does not work.

Is there a way to detect if the window will be closable with window.close(), so I can show the button only if it will work?

Upvotes: 15

Views: 4914

Answers (2)

James Thorpe
James Thorpe

Reputation: 32202

You can check to see if window.opener is not null:

When a window is opened from another window, it maintains a reference to that first window as window.opener. If the current window has no opener, this method returns NULL. Windows Phone browser does not support window.opener. It is also not supported in IE if the opener is in a different security zone.

Upvotes: 16

Drown
Drown

Reputation: 5982

You can try using the window.opener object, which returns a reference to the window that opened the current window (if it's another window), or NULL if the current window was not opened via JS.

if (window.opener) //Show button

Upvotes: 3

Related Questions