我将值粘贴到脚本中,我使用下面的函数来'内爆'数组
function implode() { var str='';
for(item in globvars)
str +='\n'+globvars[item]+';';
return str+'\n';
}
样本用法:
globvars = ['Tom', 'Dick', 'Harry'];
output = '<script type = "text/javascript">\n'+implode(globvars)+'</script\>';
预期输出应为:
<script type = "text/javascript">
Tom
Dick
Harry
</script>
Instead, I am getting something like this:
<script type = "text/javascript">
Tom Dick Harry </script>
什么......?
答案 0 :(得分:1)
这对我来说很好。您是否将output
输出到浏览器?浏览器会忽略换行符等,执行alert(output)
,您会看到换行符在那里。
此外,您当前初始化globvars
是错误的,您无法构建这样的对象。使用[ ]
构建数组:
globvars = ['Tom', 'Dick', 'Harry'];
答案 1 :(得分:1)
如果您将globvars
作为数组(请参阅Tatu的回答),您可以使用内部.join
代替implode
:
globvars = ['Tom', 'Dick', 'Harry'];
output = '<script type = "text/javascript">\n'+ globvars.join(";\n") +';\n</script\>';
答案 2 :(得分:0)
@Tatu Ulmanen
他正在渲染一个脚本标签。如果他正在做&lt; div&gt; ...&lt; / div&gt; \ ns将被剥离。
@OP
尝试发送
<script><![CDATA[
x
y
z
]]></script>
ajax请求可能已经破坏了它并剥离了换行符。如果这是对常规请求的直接渲染,则浏览器不应删除\ ns。
如果这不起作用,请注明:
正在测试什么样的浏览器,做了什么样的请求,你想要完成什么,以便这些新行非常重要。