簡體   English   中英

escape_javascript在Rails中無法正常工作

[英]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=&#x2713; />
  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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM