我正在维护一个在DOM上创建元素的函数,onclick
事件‡设置为传递给函数的参数。它与此非常相似:
var msg="Hi there\nGood to see you",
returnElement=function(message) {
document.getElementById("manipulate_me").innerHTML='<span onClick="alert(\''+message+'\');">click me and I throw a JavaScript error</span>';
};
在包含<div id="manipulate_me">Gets replaced</div>
的HTML网页上,执行returnElement(msg);
会导致此错误(see for yourself on the jsfiddle at http://jsfiddle.net/jhfrench/HetQD/):
未捕获的SyntaxError:意外的标记ILLEGAL
当我检查DOM时,我看到了这一点(注意alert()
中的新行):
<span onclick="alert('Hi there
Good to see you');">click me and I throw a JavaScript error</span>
如何传递包含一个或多个嵌入式新行代码的字符串?
注意事项:
‡ - 我知道,我知道 - “维护”,而非“写作”
答案 0 :(得分:2)
您可以简单地双击\n
来完成此操作:
var msg="Hi there\nGood to see you\nAlways a pleasure",
returnElement=function(message) {
document.getElementById("manipulate_me").innerHTML='<span onClick="alert(\''+message.split("\n").join("\\n")+'\')+'\');">click me and I throw a JavaScript error</span>';
};
returnElement(msg);
这里有更新的jsfiddle:http://jsfiddle.net/HetQD/15/