2013-05-21 3 views
5

Ist es möglich, auf eine HTML-Anfrage mit Javascript zu antworten? Damit meine ich, dass ich nicht möchte, dass die Seite aktualisiert wird und zusätzlich Javascript ausführt. Ich frage mich, ob dies möglich ist, indem nur die Serverseite geändert wird?Mit JavaScript auf eine HTML-Anfrage antworten?

In meiner Aktion, habe ich etwas ausgewählt js und html so antworten:

respond_to do |format| 
    format.js 
    format.html 
end 

Und ich habe eine .js.erb-Datei, die, natürlich wiedergegeben werden soll, wenn der Browser ein Javascript anfordert.

Kann dies getan werden? Wie?

+0

mir gut aussieht Sie versucht haben, mit in js diesen Weg nennen? –

+0

Was meinst du? Ich brauche die Anfrage fragt nach einem 'html', und die Antwort ist ein' js'. – fotanus

+0

korrigieren Sie mich, wenn ich falsch liege. Sie möchten http://someurl.com/someroute tun und es zurückgeben js vs tun http://someurl.com/someroute.js? –

Antwort

3

Sie können dies nicht tun, indem Sie nur den serverseitigen Code ändern. Wenn Sie möchten, dass Javascript auf die Antwort des Servers ausgeführt wird, muss das Formular über Javascript gesendet werden. Dies liegt daran, dass javascript die Antwort vom Server auswertet und den Code ausführt.

kann in Rails werden diese etwas triviale Weise hinzugefügt:

<%= form_for @user, remote: true %> 

Wenn es eingereicht wird, dann können Sie wieder Javascript senden. Zum Beispiel, zu warnen, dass ein Benutzer hinzugefügt wurde:

/app/views/users/create.js.erb

alert("user <%= j @user.email %> was added"); 
+0

Danke für deine Antwort, ich glaube auch, dass es nicht möglich ist. Wenn niemand auf etwas kommt, werde ich deine Antwort akzeptieren. Ich verstehe, dass das einfach ist, aber ich migriere von 'rjs' (erinnerst du dich an rjs?) An' ujs', und so ist es eine Menge Orte, um diese Aufrufe zu ändern ... – fotanus