我有一个带评论系统的网站。系统会抓取之前的评论,并将其添加到下一个评论中。
In reply to your comment:\n<?php echo $_POST['firstComment'];?>\n-------------\n
当用户尝试添加新评论时,我会抓住上面一行并将其抛出:
$('#addCommentButton').click(function(){
var id = $(this).attr('name');
var firstComment = "<?php echo $bodyComment;?>";
$.ajax({.......
问题是var firstComment被定义为:
"In reply to your comment:
g
-------------
asdfasfasfsfsdfsdf";
我最终得到了一个javascript错误:
Uncaught SyntaxError: Unexpected token ILLEGAL
问题在于我需要新的换行符,因此注释框看起来很明显。
如何将变量firstComment设置为包含新换行符的内容?我试过了:
var firstComment = "<?php echo $bodyComment;?>".replace("\n|\r\n| ","");
仍然得到错误。
答案 0 :(得分:3)
使用json_encode
:
var firstComment = <?php echo json_encode($bodyComment);?>;
就像你用htmlspecialchars
转义输出HTML安全字符串一样,你需要一个类似于JavaScript字符串/数据的转义函数;