Forum: Ruby on Rails New Browser Window using AJAX

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
David (Guest)
on 2009-03-03 03:04
(Received via mailing list)
Is it possible to create a new browser window popup with an ajax
call?  I want to open a new window and then trigger window.print()
like google docs and maps.  I know you can create new browser popups
with link_to by using :popup => ['new', 'height=300,width=300'], but I
don't think you can use it with link_to_remote.  Is there a way to
programmatically render some inline javascript?  I tried:

 window.open('test/popup'
'mywin','left=20,top=20,width=500,height=500,toolbar=1,resizable=0');

But I was unable to load anything into the popup view.
bill walton (Guest)
on 2009-03-03 03:48
(Received via mailing list)
Hi David,

On Mon, 2009-03-02 at 17:03 -0800, David wrote:
> Is it possible to create a new browser window popup with an ajax
> call?  I want to open a new window and then trigger window.print()
> like google docs and maps.

If I understand what you're trying to do, you should be able to use
link_to_remote to open a new window and populate it as you please with
RJS.  If you're new to RJS, grab Cody F.'s .pdf off O'Reilly.

HTH,
Bill
Greg D. (Guest)
on 2009-03-03 07:02
(Received via mailing list)
On Mon, Mar 2, 2009 at 7:03 PM, David <removed_email_address@domain.invalid> 
wrote:
>
> Is it possible to create a new browser window popup with an ajax
> call?

Yup.

> I want to open a new window and then trigger window.print()
> like google docs and maps.  I know you can create new browser popups
> with link_to by using :popup => ['new', 'height=300,width=300'], but I
> don't think you can use it with link_to_remote.  Is there a way to
> programmatically render some inline javascript?  I tried:
>
>  window.open('test/popup'
> 'mywin','left=20,top=20,width=500,height=500,toolbar=1,resizable=0');
>
> But I was unable to load anything into the popup view.

html:

<%= link_to_remote 'Popup', :url => { :controller => :home, :action =>
:popup } %>

popup.rjs:

page << "window.open('/home/window', 'mywin',
'left=20,top=20,width=500,height=500,toolbar=1,resizable=0' );"



--
Greg D.
http://destiney.com/
Dave L (Guest)
on 2009-03-03 14:09
(Received via mailing list)
Okay, thanks.  Thats what I thought and I have been trying that, but
I'm wondering, will this trigger the window action of the home
controller?  And do I just add a window view?  Is it possible to
populate that view dynamically within the popup ajax action?
Greg D. (Guest)
on 2009-03-03 22:28
(Received via mailing list)
On Tue, Mar 3, 2009 at 6:08 AM, Dave L <removed_email_address@domain.invalid> 
wrote:
>
> Okay, thanks.  Thats what I thought and I have been trying that, but
> I'm wondering, will this trigger the window action of the home
> controller?  And do I just add a window view?  Is it possible to
> populate that view dynamically within the popup ajax action?

It will call whatever you tell it to call in your window.open().

/home/whatever is the same as { :controller => :home, :action =>
:whatever } .


--
Greg D.
http://destiney.com/
David F. (Guest)
on 2009-03-13 17:36
(Received via mailing list)
Greg - this "works" but is flagged by popup blockers on IE and
Firefox.  Any thoughts on methods around this?
Starr H. (Guest)
on 2009-03-13 21:27
(Received via mailing list)
> Greg - this "works" but is flagged by popup blockers on IE and
> Firefox.  Any thoughts on methods around this?

I don't know if it helps, but I've noticed that browsers will let you
open a window via JS, as long as the JS was called as a result of a user
click. The exact same code will be blocked if it's called by a timer, or
some other non-user source.

SH
--
Starr H.
My blog: http://starrhorne.com
Check out my Helpdesk RailsKit: http://railskits.com/helpdesk/
This topic is locked and can not be replied to.