我只想用link_to
打开一个弹出窗口。我尝试了一些东西,但它不起作用:
<%= link_to 'Create a new company',
new_company_path,
:popup => ['create_company', 'height=600, width=600'] %> <br/>
有什么想法吗?
谢谢!
答案 0 :(得分:19)
将此添加到您的application.js。
$('a[data-popup]').on('click', function(e) { window.open($(this).attr('href')); e.preventDefault(); });
在视图中,使用以下内容:
= link_to( 'Create a new company', new_company_path, 'data-popup' => true )
答案 1 :(得分:10)
<%= link_to 'Create a new company',
new_company_path,
:onclick=>"window.open(this.href,'create_company', 'height=600, width=600');return false;"
%>
答案 2 :(得分:6)
我对这个问题的第一次尝试可能看起来像这样。它假设您使用的是rails 3,jQuery和jquery-rails。如果你不是,这种方法肯定是行不通的。此确切代码未经过测试,因此您的里程可能会有所不同。我只想告诉你如何思考这个问题。如果您希望我详细说明其工作原理或有疑问,请告诉我,我会尽力解释。
将您的link_to转换为ajax帖子:
<%= link_to "Create a new company", new_company_path, :remote => true, :method => :post %>
在您的控制器中,使用javascript模板进行回复:
def create
@company = Company.new(params[:company])
respond_to do |format|
if @company.save
format.js
else
format.js { render 'error' }
end
end
end
在views / companies / create.js.erb中,执行JS以打开新窗口。
window.open (<%= company_url(@company) %>, "mywindow","width=600,height=600");
我认为应该或多或少地做到这一点。我喝了几瓶啤酒,所以请谨慎行事。
答案 3 :(得分:2)
如果您的目标只是在新窗口中打开链接而不关心维度/工具栏/等,那么您也可以使用旧的HTML:
<%= link_to 'Create a new company', new_company_path, :target => '_blank' %>
答案 4 :(得分:1)
这是快速而肮脏的解决方案
<%= link_to 'Create a new company',
'#', :onclick => "javascript:window.open(new_company_path,'popup','width=600,height=600');" %>