0

我有一个可编辑的 iframe,可用作博客的帖子输入。我正在使用 jQuery 从 iframe 的正文中检索 html:

function sharePost (feedNumber)
{
  var postBox = $("#ifrNewPost" + feedNumber).contents(); // Gets iframe content
  var postContent = $('body', postBox).html(); // Gets iframe body

  var params = { post: encodeURI(postContent) };

  // Send to server
  $.ajax({

    type:'POST', 
    url: 'script/post.php', 
    data: params, 

    success: function(response) {
      $(document).append(response);
    }

  });
}

几乎可以完美运行,我的问题是,当我将某些内容粘贴到 iframe 中时,似乎在我粘贴的开头添加了一个换行符,然后在提交时,脚本失败并显示:“Uncaught SyntaxError: Unexpected token ILLEGAL”

我试过 encodeURI 和 encodeURIComponent 无济于事。当我在粘贴后查看页面的代码时,我粘贴的内容没有明显的变化,它似乎只是在它之前添加了一个新行。关于如何将 HTML 安全地发送到我的 php 脚本的任何解决方案?

4

2 回答 2

1

问题在于 php 代码到底返回了什么!只需运行正则表达式将任何换行符更改为 br 就可以了!

$post = preg_replace("/(\r\n|\n|\r)/", "<br />", $post);
于 2012-08-24T12:02:42.797 回答
0

使用nl2br

$post = nl2br($post);
于 2014-07-30T05:43:53.807 回答