jQuery post.How如何加载无效的HTML标记到div而不会破坏它

时间:2010-10-14 18:41:30

标签: jquery html

我正在构建一个小型的CMS类应用程序。我正在从asp.net页面返回的内容中使用jQuery post方法加载div。

<html>
 <body>
    <h3>Edit your posts</h3>
  <div id="divMArkupContainer">
  </div> 
</body>

<script>
$.post("ajaxhandler.aspx", function (data) {

                $("#divMArkupContainer").html(data);
            });
 </script>

在页面加载时,我将所有内容(用户帖子)的预览加载到页面中的一个单独div。如果用户编辑预览,他将点击编辑按钮,我将显示具有预览的HTML标记

当我从ajaxhandler.aspx页面返回一些纯文本时,这很有效。但是当我从这个页面返回一些HTML标记并加载到div时,我的HTML标记会中断,因为来自asp.net页面的响应有一些无效标记。(此标记是文本编辑器中的用户条目,用于更改某些页面的外观。)它在IE 8中打破,但在Firefox中,它不会。无论如何,我可以显示HTML标记,因为它来自asp.net页面?

我的HTML页面有

<body>
  <h3>Edit your posts</h3>
  <div id="divMArkupContainer">
  </div> 
</body>

我从asp.net页面返回的示例内容是

 <div id="post1">
    <div id="postPreview1">Some post content <b>here</b></div>
    <div class="editToolbar"><a href="#" onclick="ShowEdit(1)">Edit</a></div>
    <div id="divEditRegion1"><textarea id="txt1">Some post content <b>here</b></textarea></div>
</div>

如果我返回如下所示的内容,它将会中断

 <div id="post1">
    <div id="postPreview1">My broken <b> markup here</div>
    <div class="editToolbar"><a href="#" onclick="ShowEdit(1)">Edit</a></div>
    <div id="divEditRegion1"><textarea id="txt1">My broken <b> markup here</textarea></div>
</div>

标记中断意味着:由于未关闭,其余内容(不仅是我从ajax调用中带来的标记,而且我页面中可用的html也会中断

知道如何解决这个问题吗?

顺便说一下,当我在这里的评论框中发布一些无效的HTML时会发生什么?

1 个答案:

答案 0 :(得分:0)

假设您只想确保返回有效的标记。

您可以尝试使用the HTML Tidy wrapper for .NET