Hi all,
In an AJAX action, I want to open a new window. problem: the code below does not work : I see the 2 alerts, but 'window.open' does not open a new window.
controller :
Hi all,
In an AJAX action, I want to open a new window. problem: the code below does not work : I see the 2 alerts, but 'window.open' does not open a new window.
controller :
Go get Firebug: http://www.getfirebug.com/
If you’re still stuck, post what the resulting error is.
Jason
Ditto on Firebug.
Probably a popup blocker is preventing the window from opening. I'm not sure how to work around that. Try disabling your popup blocker to verify that is the problem.
have you tried:
page.call 'window.open', 'http://www.google.com'
Probably a popup blocker is preventing the window from opening.
That was it, not that it makes sense : the Firefox popup-blocker will
* allow (open)
<%= link_to "open a new window", root_path, :target => 'child2' %>
* but not
render(:update){ |page| page << "window.open('#{root_path}');" }
2° : I fear a double "NO", but I'll ask anyway : is there * another javascript way to _open_ a window that would go through the popup blocker, or * a way to _detect_ (even indirectly) that the client's browser has a popup blocker on?
Alain
A quick Google resulted in this:
http://www.visitor-stats.com/articles/detect-popup-blocker.php
Looks like it might work to detect the blocker.
Note that their javascript is sort of... lame. The trick of opening a window and seeing if it is set makes sense, but they always close the window's object, which will likely fail. You probably want to move that into the 'if the window opened' code only.
If you are doing this trick, I'd highly recommend only doing it once then storing it on the session or something. Having a small window pop up on every page hit will likely drive your users insane, and having the pop-up window thing appear constantly will likely do the same.
--Michael
http://www.visitor-stats.com/articles/detect-popup-blocker.php
Thanks Michael.
There's a much simpler way actually :
page << "if (confirm('#{msg}') ) {" page << " new_win=window.open('#{root_path}');" page << " if (new_win==null) {alert('Please disable your popup blocker');}" page << "}"
Alain
Instead of a real browser window, try a javascript one, like this http://www.stickmanlabs.com/lightwindow