Is window.opener reliable?

Is JavaScript’s window.opener property reliably available across browsers, and immune against any security settings and limitations of any sort? Both the opener and the opened window would be on the same domain.

Has anybody run into troubles, bad experiences using it under certain circumstances?

I’m asking because I’m planning to build a tool that relies heavily on it and should support as many platforms as possible.

Answer

I’ve been a developer on two sites now that make extensive use of window.opener, and I don’t know of any time when it failed me. These apps were tested on IE[678], Firefox, and Webkit; I’ve informally used Opera and not noticed a problem there either.

Now, the “opener” relationship is inherently fragile anyway, because there’s not much you can do to prevent your users from visiting “cnn.com” in the main browser window that was used to open your separate popup window. Once the original window has loaded new content, the “child” window’s “window.opener” reference won’t do you any good anyway. Similarly, when the user goes and opens up a new main-browser window and navigates to your site, your “orphan” windows won’t really be able to find it.

Of course I cannot offer you a 100% guarantee that everything will be OK 🙂 My story is true however. Perhaps my reliance on “window.opener” has not been as serious or deep as what you’re planning; I can’t really say that everything in my applications depended on that working.