11 Stimmen

Wie verwendet man die link_to-Hilfe, um ein Popup zu öffnen?

Ich möchte nur die link_to um ein Popup zu öffnen. Ich habe etwas versucht, aber es funktioniert nicht:

 <%= link_to 'Create a new company',
             new_company_path,
             :popup => ['create_company', 'height=600, width=600'] %> <br/>

Irgendeine Idee?

Danke!

19voto

Mark Swardstrom Punkte 16341

Fügen Sie dies zu Ihrer application.js hinzu.

$('a[data-popup]').on('click', function(e) { window.open($(this).attr('href')); e.preventDefault(); });

Verwenden Sie in der Ansicht etwas wie:

= link_to( 'Create a new company', new_company_path, 'data-popup' => true )

11voto

Viktor Trón Punkte 8506
<%= link_to 'Create a new company',
         new_company_path, 
        :onclick=>"window.open(this.href,'create_company', 'height=600, width=600');return false;" 
%>

6voto

Josh Deeden Punkte 1600

Mein erster Versuch, dieses Problem zu lösen, würde wahrscheinlich in etwa so aussehen. Es wird angenommen, dass Sie Rails 3, jQuery und jquery-rails verwenden. Wenn Sie nicht sind, wird dieser Ansatz definitiv nicht funktionieren. Dieser genaue Code ist nicht getestet, so dass Ihre Meilenzahl variieren kann. Ich versuche nur, Ihnen eine Idee zu geben, wie Sie über das Problem nachdenken sollten. Wenn Sie möchten, dass ich die Funktionsweise näher erläutere, oder wenn Sie Fragen haben, lassen Sie es mich wissen, und ich werde mein Bestes tun, um es zu erklären.

Verwandeln Sie Ihren link_to in einen Ajax-Post:

<%= link_to "Create a new company", new_company_path, :remote => true, :method => :post %>

Reagieren Sie in Ihrem Controller mit einer Javascript-Vorlage:

def create
    @company = Company.new(params[:company])
    respond_to do |format|
       if @company.save
          format.js
       else
          format.js { render 'error' }
       end
    end
end

Führen Sie in views/companies/create.js.erb das JS zum Öffnen des neuen Fensters aus.

window.open (<%= company_url(@company) %>, "mywindow","width=600,height=600");

Und das sollte mehr oder weniger genügen, denke ich. Ich habe ein paar Biere getrunken, also sei mit Vorsicht zu genießen.

2voto

Matt Sanders Punkte 6299

Wenn Ihr Ziel nur darin besteht, den Link in einem neuen Fenster zu öffnen, und Sie sich nicht um die Verwaltung der Abmessungen/Symbolleiste usw. kümmern, können Sie auch das gute alte HTML verwenden:

<%= link_to 'Create a new company', new_company_path, :target => '_blank' %>

1voto

rails_id Punkte 8222

Das ist die schnelle und schmutzige Lösung

<%= link_to 'Create a new company',
             '#', :onclick => "javascript:window.open(new_company_path,'popup','width=600,height=600');" %>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X