我有一个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中时,我粘贴的东西的开头似乎添加了一行换行符,然后提交时,脚本失败了:"未捕获的SyntaxError:意外的令牌非法"
我尝试过encodeURI和encodeURIComponent,但都没有成功。当我在粘贴后查看页面的代码时,我粘贴的内容没有明显的变化,只是在它之前添加了一行新行。关于如何将HTML安全地发送到我的php脚本,有什么解决方案吗?
问题在于php代码到底返回了什么!只需运行regex将任何换行符更改为br就完成了任务!
$post = preg_replace("/('r'n|'n|'r)/", "<br />", $post);
使用nl2br
$post = nl2br($post);