jQuery AJAX 正在从 HTML 数据中剥离内联 CSS

标签 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 原封不动地发送到服务器。关于如何实现此目标的任何想法?

最佳答案

在 javascript/前端用 style1(或任何东西)替换样式 再次在服务器端将其从 style1 替换回 style

例子:

$.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','style',$content)

关于jQuery AJAX 正在从 HTML 数据中剥离内联 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7774961/

相关文章:

javascript - 如何使用jquery修改没有div Id的内部HTML

jquery - 启用缓存的微调消息

jquery - 在引导表中使用 jquery 在禁用和启用之间切换

html - float 出现在元素的背景上

javascript - 增加文本周围的可选区域

html - 使表单中的字体变大

jquery - Bootstrap-table 动态改变表格高度

html - 将标签和自动调整大小输入保持在同一行

html - 增加标签 "p"的高度并居中对齐

javascript - 在部分之间导航后保持选中复选框