jQuery AJAX正在从HTML数据中删除内联CSS

时间:2011-10-15 00:42:10

标签: jquery html css ajax inline

我正在尝试通过AJAX将HTML数据传递到服务器。我最终希望将完整的HTML代码(包括任何内联CSS定义)存储在数据库中。我不想对HTML数据进行任何更改,只是按原样存储它。我的问题是,当我通过AJAX传递HTML数据时,当它到达服务器时,内联CSS已被剥离,但不仅如此,它被错误地剥离,留下无效的HTML。

以下是我正在尝试做的一个示例:

var the_html = {'html':'<p><span style="font-size:42px;"><span style="color:#f00;">
    Some text</span></span></p>'};

$.ajax({
    type: 'POST',
    url: 'ajax.php',
    data: the_html,
    success: function (data) {
        alert(data);
    }
});

当数据到达服务器时,它看起来像这样:

<p><span>span style="color:#f00;">Some Text</span></span></p>

在我看来,jQuery试图剥离所有内联CSS,但是通过删除第二个span标记的开口尖括号来搞砸了第一个span标记。我尝试在通过AJAX发送之前转义数据,但结果是一样的。此外,我使用对象文字语法,因为我要传递的数据比示例中要多得多,并且我希望它在到达服务器时成为关联数组。

我不希望内联CSS被删除。我想将所有标记加上任何CSS完整地发送到服务器。关于如何实现这一目标的任何想法?

1 个答案:

答案 0 :(得分:0)

在javascript / frontend上用style1(或任何东西)替换样式  并再次在服务器端将它从style1替换回样式

示例:

  

$。AJAX({                                    url:base_url +'/ adminevent / dragDrop',data:{pid:p_id,content:data.replace('style','style1'),update:'update'},   type:'POST',success:function(res){// alert(res)                                          }});

在服务器端(我的PHP):

  

str_replace函数( 'STYLE1', '风格',$内容)