【问题标题】:Styling attributes with AJAX data post使用 AJAX 数据发布样式属性
【发布时间】:2017-05-08 07:21:53
【问题描述】:

我正在使用 jQuery 从 div 中获取所有内容,包括其子元素。

DIV 内容:

<div class="content">
   <h1 style="color:red">Test Title</h1>
   <p style="color:blue">Test Description</p>
</div>

使用下面的 jQuery 在新变量中收集数据:

emailContent = $( ".content" ).html();

然后我创建一个 AJAX 帖子如下:

$.ajax({
    type: 'POST',
    url: ajax_object.ajaxurl, 
    data: {
        "action": "action1",
        "emailContent":emailContent

    }
});

我正在使用 wp_mail() 函数使用内容发送电子邮件,但是一旦发送电子邮件,所有样式都将被忽略。

wp_mail 函数是这样编码的:

$to = 'xx@xx.com';
    $subject = 'Subject';
    $message = $_POST['emailContent'];
    $headers = array('Content-Type: text/html; charset=UTF-8');

    wp_mail( $to, $subject, $message, $headers );   

当我将 Content-type 更改为 text/plain 时,输出如下:

<div class=\"emailContent\">    <h1 style=\"color:red\">Test Title</h1>    <p style=\"color:blue\">Test Description</p> </div>

当类型是 HTML 时,斜线会是格式不正确的原因吗?

关于在通过 AJAX 帖子发送数据时如何保留内联样式的任何想法?

【问题讨论】:

  • 你能把你收到的邮件发给你吗?
  • 样式属性肯定包含在字符串中,如您在此处看到的:jsfiddle.net/pr051kw4。如果它被剥离,要么是由于您正在使用的电子邮件发送库,要么是电子邮件客户端忽略了它。后者很可能是因为电子邮件中的 CSS 非常受欢迎。当涉及到电子邮件中的 HTML 时,您需要想象它是 1997 年,而您正在为在 IE3 中看到您的内容而写作。
  • HTML 邮件——尤其是它的样式——是一个雷区,它本身就是一个专业领域。如果邮件没有以某种方式配置(或者有时即使是这样),许多电子邮件客户端会删除部分或全部样式。您可能需要研究诸如 SendInBlue 之类的服务来以这种方式发送模板邮件。
  • 您提到wp_mail,您是否将内容类型设置为HTML?否则它可能会剥离你的 HTML developer.wordpress.org/reference/functions/wp_mail/…
  • @RoryMcCrossan 我知道 HTML 电子邮件真的很挑剔,你需要考虑老派,但它只是我正在测试但仍然无法正常工作的颜色。

标签: javascript jquery html css ajax


【解决方案1】:

我通过将stripslashes() 添加到$message 内容解决了这个问题,现在正在应用样式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 2018-12-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    相关资源
    最近更新 更多