2009-05-22 88 views
3

可能重複:
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://stackoverflow.com/questions/805107/multiline-strings-in-javascript – Shog9 2009-05-22 05:17:50

回答

5

你指的是通常被稱爲here-document (or HEREDOC)的語法也沒有,這是不可用在Javascript。

像你一直在做的那樣添加一個反斜槓是在JavaScript中用多行代碼跨越字符串的恰當方法。

2

有HTML內嵌這樣是不好的做法,但如果你真的想清潔處理它,試試這個:

放置一個隱藏的div你想要的HTML頁面上,並替換的東西的自訂參數像{title}。當調用更新,如果您使用的Rails通過yourdiv.innerHTML.replace(...

+0

這種方法的問題是,它使得它很難封裝功能在一個單一的JavaScript文件 - 例如,編寫需要將特定內容插入到DOM中的插件。 – alexw 2015-11-05 01:54:17

0

的話,那就用RJS有很多清潔更新一些多HTML一個div:

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

然後overlay.html.erb將包含原始的HTML以上無泄漏。

的額外好處是,也可以在初始頁面加載使用爲好,片段「覆蓋」,這在很多情況下是你想要的。

相關問題