在Javascript中使用长字符串文字的最佳方式是什么?

问题描述:

可能重复:
Multiline strings in Javascript在Javascript中使用长字符串文字的最佳方式是什么?

在Ruby中,你可以做这样的事情

TEMP = < < -SQLCODE SELECT * FROM用户 SQLCODE

这样你在你的代码中有非常长的字符串文字,而不必逃避很多o f字符。 JavaScript中有类似的东西吗?

目前我有这样的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://*.com/questions/805107/multiline-strings-in-javascript – Shog9 2009-05-22 05:17:50

你指的是通常被称为here-document (or HEREDOC)的语法也没有,这是不可用在Javascript。

像你一直在做的那样添加一个反斜杠是在JavaScript中用多行代码跨越字符串的恰当方法。

有HTML内嵌这样是不好的做法,但如果你真的想清洁处理它,试试这个:

放置一个隐藏的div你想要的HTML页面上,并替换的东西的自订参数像{title}。当调用更新,如果您使用的Rails通过yourdiv.innerHTML.replace(...

+0

这种方法的问题是,它使得它很难封装功能在一个单一的JavaScript文件 - 例如,编写需要将特定内容插入到DOM中的插件。 – alexw 2015-11-05 01:54:17

的话,那就用RJS有很多清洁更新一些多HTML一个div:

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

然后overlay.html.erb将包含原始的HTML以上无泄漏。

的额外好处是,也可以在初始页面加载使用为好,片段“覆盖”,这在很多情况下是你想要的。