我有一个带有评论系统的网站。系统获取上一条注释,并将其添加到下一条。

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|&#13;&#10;","");


仍然得到错误。

最佳答案

使用json_encode

var firstComment = <?php echo json_encode($bodyComment);?>;


就像使用htmlspecialchars进行转义以输出HTML安全的字符串一样,您需要为JavaScript字符串/数据提供类似的转义功能。

10-05 20:59