2012-03-22 13 views
0

Remotipartでリモートでファイルをアップロードして遊んでいたら、本当に興味深い問題に遭遇しました。JavascriptとRemotipart - 一重引用符と二重引用符の違いは何ですか?

<%= remotipart_response do %> 
    $("#container").html('<p>Success!</p><%= link_to('Back', gallery_items_path, :remote => true) %>'); 
<% end %> 

<%= remotipart_response do %> 
    $("#container").html("<p>Success!</p><%= link_to('Back', gallery_items_path, :remote => true) %>"); 
<% end %> 

バージョンに成功#containerにマークアップを変更する1、およびバージョン2:私は、サーバーが成功したファイルのアップロード後に送信し、私のupdate.js.erbビュー、中に以下の2つのバージョンを試してみましたサーバー側またはクライアント側でエラーが発生せずに失敗します。私は、JSONが動作しているときに、単一引用符と二重引用符が問題になると思っていましたが、間違っているようです。私はまた、Remotipart exampleが一重引用符を排他的に使用していることに気付きました。これが目的に合っているかどうかはわかりません。私はRailsの3.2.1を使用してい

、Remotipart 1.0.2、とChrome 17

は誰もがこれを原因となるものを知っています(この事項があればわかりませんか)?

EDIT:アレックスの質問への答えで :予想通り最初のケースで

、レンダリングされた出力は、次のとおりです。私が言ったように第2のケースで

<div id="container"> 
    <p>Success!</p> 
    <a href="/gallery_items" data-remote="true">Back</a> 
</div> 

、変化はなかったです<div id="container">の内容です。

+1

レンダリングされた出力は何を生産するためにエスケープする必要があります"を使用するには? –

+0

@AlexK。、私はポストを更新しました。 – Andrey

答えて

0

実際のjsを引用符を閉じ;

$("#container").html("<p>Success!</p><a href="/gallery_items" data-remote="true">Back</a>"); 

外側の文字列は、その区切り文字としてではなく内容も、それが壊れる"含まれているよう"で囲まれています。 (x = "aa"bb"は無効です)。

前者の例では、'の区切り文字を使用しているため、問題はありません。

あなたはlink_toの戻りが

$("#container").html("<p>Success!</p><a href=\"/gallery_items\" data-remote=\"true\">Back</a>"); 
+0

ああ。私は将来の参考のために、心に留めておきます、ありがとう。 – Andrey

1

のlink_toは、二重引用符でリンクタグを生成し、それはあなたのJavaScriptである第二の場合には、ブラウザに渡さ

+0

ありがとうございました!それがもう少し詳しく説明されて以来、Alex Kの答えを受け入れました。 – Andrey

関連する問題