2009-05-22 15 views
3

可能性の重複:あなたはこのJavascriptで長い文字列リテラルを使用する最も良い方法は何ですか?

一時ような何かを行うことができRubyでは
Multiline strings in Javascript

=ユーザーからの選択< < -SQLCODE * SQLCODE

この方法で、あなたにあなたのコードに非常に長い文字列リテラルを持っていなくても、 f文字。 JavaScriptに似たものがありますか?

現在、あなたは、多くの場合、here-document (or HEREDOC)として知られていない、それはJavascriptで利用可能ではありませんを参照している構文

new Element.update(lightbox_id, " \ 
    <div id='overlay' class='overlay' > \ 
    </div> \ 
    <div id='lightbox' class='lightbox'> \ 
     <div class='lightbox_title'> \ 
     <div class='corner_image' onclick=\"close_lightbox();return false;\"><a href='#' >" + corner_image + "</a></div> \ 
     <div class='lightboxname' id='lightboxname'>" + title + "</div> \ 
     <div class='close_image'> \ 
      <a href='#' onclick=\"close_lightbox();return false;\">Close</a> or Escape key\ 
     </div> \ 
     </div> \ 
     <div id='" + lightbox_content_id + "' class='lightbox_content'> \ 
     </div> \ 
     <script> \ 
     watch_for_escape(); \ 
     </script> \ 
    </div> \ 
"); 
+0

短い答え:いいえ、あなたはJSのリテラル改行を持つことはできません継続文字を伴わずに鳴ります。 他にもいくつかの提案があります:http://stackoverflow.com/questions/805107/multiline-strings-in-javascript – Shog9

答えて

5

...私はこのようなJavaScriptコードを持っている、そしてその私にナットを駆動します。

JavaScriptで文字列を複数の行にまたがる適切な方法は、バックスラッシュを追加することです。あなたが欲しいHTMLで

置き、あなたのページに隠されたdiv要素を、そして何かをカスタムのparamsを置き換える:それは悪い習慣ですが、あなたが本当にきれいにそれを処理したい場合は、これを試すようなHTMLインラインを持つ

2

{title}のように。更新を呼び出すとき、あなたはRailsのを使用している場合、それはいくつかの複数行のHTMLでのdivを更新するために、RJSとロットクリーナーになっyourdiv.innerHTML.replace(...

+0

このアプローチの問題は、1つのJavascriptファイル内で機能をカプセル化することが難しくなることです。たとえば、特定のコンテンツをDOMに挿入する必要があるプラグインを作成します。 – alexw

0

を渡す:

page.replace__html 'lightbox_id', :partial => 'overlay' 

その後、 overlay.html.erbはエスケープせずに生のHTMLを上記含んでいるでしょう。

追加の利点も、同様に最初のページのロードに使用することができフラグメント「オーバーレイ」は多くのケースでどのあなたが望むものであるということである。

関連する問題