Reputation: 916
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
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
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