I am trying reopen the existing window from different windows
For example ,
Inside window one, I am opening page one and on that page I have button, upon on click of that button I am opening another window with the name "Connect" using following code
var connectWin = window.open("url to Connect page","Connect", "status=no,toolbar=no,menubar=no,location=no,directories=no,top=0,left=900,width=800,height=750");
connectWin.name="Connect";
Now, in the same window one, I am traversing to different page (within same domain) and on this page I have another button and upon on click I am checking whether connect window is already open or not if yes, then I open the existing window otherwise thow an error
// code to take reference of an existing connect window
var connectWnd = window.open('', 'Connect');
if( jQuery.type(connectWnd) === "undefined" || connectWnd.location.href === 'about:blank' ){
connectWnd.close();
$("#errorMessage").text("Connect page is not opened yet");
}else{
//if connect is already open then post a message to that window
connectWnd.postMessage(data);
}
The issue that i am facing is , if user open another page in a different window than I alway get Connect Page is not opened yet error.
It seems when user tries to access the page from different window i.e. window two than in that case window.open('', 'Connect'); fails. So is there a way to open an existing window from any window in the browser.
There is no way to get access to other windows the user has opened in his browser from a web page since that can cause serious security issues. Also, it is impossible to redirect to another tab in the browser from one page (unless it is opened with window.open) since it has been abused by ad networks to force the browser to the other tab (earlier you could use alert() to force navigate the user to another tab)
The best solution to cover all edge cases may be to develop a browser extension and synchronize actions with a server to register open tabs (but even in that case, you cannot redirect him to a window on another browser!)
Related
I need to find a way for a website to find out if a user already has another window open of that same website. I tried AJAX setting a flag as soon as window opens but UNSETTING this flag never worked properly (on closing the window or quit browser).
In order to process special URLs in an already opened web application I use this approach:
the user receives a special URL in an email (alarm notifications)
the URL opens a small helper web page (H) with JavaScript code that temporarily sets a session cookie
the main web application (M), which is already open in another tab/window, recognizes this and handles the request after deleting the cookie
the helper web page (H) identifies this as a success and is now useless and should be closed.
This all works fine except for the helper window (H) remaining open.
Of course there is a small text saying "please close this window now" but it would be perfect if it could do this automatically.
window.close() causes a confirmation dialog in IE and FireFox just ignores the command. I understand this is because the window has not been opened using window.open().
Similarly, calling window.focus() in the main window does not do anything, either.
Does anyone have an idea how to accomplish this anyway? At least, automatically focusing the main window without closing the helper window would be better than nothing.
Of couse I'm also open for other solutions to handle e-mail links in an already open web application... :)
Note the web application (and the helper page of course) are on a HTTPS server.
In some browsers, a window can only be silently closed through javascript if it was opened via javascript (for security purposes).
This code is a hack to get around this security measure:
// open a new window, replacing the current one
window.open('', '_self', '');
// close the current window, which was now technically opened via javascript
window.close();
Use at your own risk. These measures are in place to prevent you from doing annoying/malicious things to visitors of your page.
My site opens up a popup window to an external site, but at some point, the popup window will redirect to my site again. Because of security reasons, I know I can't look at the popup window URL until it redirects to back to my site. What I did is kept checking every second to see whether I could access the url address, and once I could, (meaning the popup window was back on my site) I stored the Url info and closed the popup. This seems like a pretty bad way of doing it...
Is there any way to detect the window returning to my site?
If you have control over the linkback page for the popup then you can set up a special page just for this purpose. All you'd need to do would be to create a page with some javascript that runs to notify you that you have come full circle.
One property that popup windows have is the window.opener property which refers to the parent window that initially created the pop-up.
This should be a good place to start.
I'm building an app that involves authentication via third-party. To make the process not redirect the actual app I open a new window that then does the authentication and returns to main window after success.
This doesn't, however, go as well as planned. When the popup redirects to third-party and back, window.opener gets null. It's still possible to close the popup by window.close() but I also need to refresh the logged-in-area in the main window, like this:
window.opener.check_auth_status();
I really hope there is a way to fix this, e.g. binding a function to popup-close in the main window? Refreshing the whole page would be highly unnecessary.
One way is to set an interval to main window checking if the popup is closed, but this seems so fiddly.
You have a few options that may or may not work in the latest versions of the browsers due to security updates
1) check that the window is closed from the opener - not fiddly and actually the safest
2) give the opener a name
window.name="myMainWindow";
and in popup (script from SAME domain) - should normally not open a new window or change content
var handle = window.open("","myMainWindow");
handle.check_auth_status();
3) use an iFrame in the popup and when you want to access the opener, use top.opener
Using javascript "window.close()" method after opening new window using "window.open", it serve the problem i.e. but it will ask a confirmation message to user whether he really wants to close the window or not... if user selects yes then the parent window will close and if not then he will remain on the same window and new window will not get open up..
So is there any way so that parent window will get closed without asking any confirmation message and new window will gets open up ?
No. It´s a security feature. You are trying to manipulate an application on another users machine.
If you put it in another context it becomes clear why it is as it is and why it should be that way: Would you like if your email client suddenly closed cause you read an email?
EDIT: What you can do is having the login window trigger a navigate event in it´s opener so the first page gets replaced by the billing info page. Then it can close itself.