我有一些AJAX,它会引入以下内容,使用div
添加到innerHTML
。
<a href="#" onclick="javascript:document.getElementById('textareax').value += '\r\nTEST';">Add</a>
然后当我按下“添加”链接时,它会将“TEST”添加到textareax
。
如果我从一开始就在文档的HTML中使用它,它可以很好地工作,但是当我使用AJAX并使用innerHTML
将其添加到div
“添加”时链接不起作用。
我认为这可能是一个问题,因为它中包含javascript而我只是使用innerHTML
添加它,但不知道如何解决这个问题。
答案 0 :(得分:2)
\r\n
是换行符,但已由解析为。 innerHTML
将设置为:
<a href="#" onclick="javascript:document.getElementById('textareax').value += '
TEST';">Add</a>
不起作用(语法错误; JavaScript字符串不能包含文字换行符)。
您需要使用\\r\\n
进行双重转义,以便在JavaScript解析时\r\n
成为\\
\
和r
将不受影响)。然后\r\n
将保留在onclick
处理程序中,以便新行确实添加到textarea:http://jsfiddle.net/r6bhE/。
答案 1 :(得分:1)
onclick="javascript:document[...]
语法不正确。 onclick属性是一个javascript事件,不需要javascript方案指示。您只需将脚本直接放入属性值:
<a href="#" onclick="document.getElementById('textareax').value += '\r\nTEST';">Add</a>
在拦截鼠标事件时返回一个值也是一个好主意(true
传递事件,false
取消它)。