[英]escape_javascript not working properly in Rails
我遇到了不引人注目的javascript問題。 在我的TwitterAccountController
我有:
def unshare
@twitter_account = TwitterAccount.find(params[:id])
#@twitter_account.update_attribute(:message_enabled, true)
respond_to do |format|
format.html { redirect_to @twitter_account.user }
format.js # responds to TwitterAccount/share.js.erb
end
end
當您點擊名為“unshare”的視圖中的按鈕時會發生什么
響應的unshare.js.erb是:
var div_name = '<%="div#share_form_#{@twitter_account.id}"%>'
$(div_name).html("<%= escape_javascript(render(:partial => 'shared/share', :locals => {:twitter_account => @twitter_account}))%>");
假設將按鈕從“取消共享”按鈕切換到“共享”按鈕。 但是當單擊“取消共享”按鈕時,這是從escape_javascript生成的代碼:
<form accept-charset=UTF-8 action=/twitter_accounts/1/share data-remote=true method=get>
<div style=margin:0;padding:0;display:inline><input name=utf8 type=hidden value=✓ />
div>
<input name=commit type=submit value=share />
form>
你可以告訴結束標簽搞砸了,有誰知道這個的原因???
我的javascript_include_tag是:
<%= javascript_include_tag 'jquery.min.js', "rails.js", "d3.js","d3.time.js", "raphael.js", "collapse_menu.js" %>
分享部分:
<%= form_tag(share_twitter_account_path(twitter_account), :method => 'get', :remote => true) do %>
<%= submit_tag "share"%>
<% end %>
我想我有同樣的問題,只是改變了
$(div_name).html("<%= escape_javascript(render(:partial => 'shared/share', :locals => {:twitter_account => @twitter_account}))%>");
對於
$(div_name).html('<%= escape_javascript(render(:partial => "shared/share", :locals => {:twitter_account => @twitter_account}))%>');
這只是顛倒你單/雙引號的方式。 值得一試 :)
正如我在評論中所說,我想出來了。 我正處於3.0.8的軌道上,並且使用了escape_javascript有一個錯誤。 更新了滑軌,它工作正常。 謝謝你的幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.