Eva*_*oll 21 javascript quotes heredoc
有没有一种方便的方法来引用在JavaScript中同时包含单引号和双引号的大块HTML?
有什么像HERE-doc <<EOF,多引号字符"""或自定义分隔符q{}?
这个问题的任何创造性或创造性解决方案
Poi*_*nty 20
有些人不喜欢这样,所以要为鄙视和嘲笑做好准备,但有一个诀窍就是把你的"大块东西"扔进一个<script language="text">街区:
<script id='blockOfStuff' language="text">
Hi this is random stuff
<h1>Including HTML markup</h1>
And quotes too, or as one man said, "These are quotes, but
'these' are quotes too."
</script>
Run Code Online (Sandbox Code Playgroud)
John Resig使用这种技术(或者如果你愿意,那种可憎的)用于他的模板机制的例子.
您可以根据需要使用"innerText"或"innerHTML"获取内容,也可以通过您喜欢的框架的服务获取内容.
编辑 -请注意,通过jQuery(相反的是我在下面留言说).text()不不工作,但我认为它应该.请.html()改用.
本机不支持.
但是既然我们正在谈论使其发挥作用的方法,那么(根据我的经验)这样做:
<script type="text/javascript">
var name = "Mud";
var str = "\
My name is " + name + "\
not to be confused with Bill\
or Jack or Pete or Dennis\
my name is " + name + " and it's always been\
";
alert("Les'n one: " + str);
</script>
Run Code Online (Sandbox Code Playgroud)
那些反斜杠可以解决问题.只需确保反斜杠 - 转义字符串中的任何双引号,因为整个块都是用它们引用的.
请注意,这不会保留换行符,您必须在每行尾随斜杠之前将它们手动插入为"\n".另一方面,每行开头的任何空格缩进都将包含在输出中.
当你必须在脚本中声明一个长的多行字符串(例如XML)时,这真的很有效,当你需要保持那个字符串的格式与你定义的方式完全一致时,效果不是很好.
干杯