【问题标题】:Javascript inside an html commenthtml评论中的Javascript
【发布时间】:2016-03-18 22:42:54
【问题描述】:

我正在用 html 写一封电子邮件,在电子邮件中,我有一些部分我只想在特定的浏览器/电子邮件客户端中显示,为此我正在使用 cmets。

有没有办法在 html cmets 中为具有特定类的元素提供 javascript 选择器。 javascript 代码不在 cmets 中。

这是我要在其上运行脚本的 html 的测试示例

<div>
    <div class="test"></div>
    <!--[if (gte mso 9)|(IE)]>
        <div>This appears in Outlook</div>
        <div class="test"></div>
    <![endif]-->
</div>

还有一个测试脚本

$(".test").html("This is a test");

我已经试过了,当在outlook中查看邮件时,结果看起来像

This is a test
This appears in Outlook

代替

This is a test
This appears in Outlook
This is a test

感谢您的帮助

更新

结果我让每个人都感到困惑,这是可以理解的。我没有在电子邮件中包含脚本。该脚本之前正在运行,它有助于从模板创建 HTML。然后将结果作为电子邮件发送。

所以,我真正想要的只是一种让我的 javascript 访问评论中的元素的方法。它在电子邮件中并不重要。我只提到这封电子邮件是为了说明我为什么需要评论。很抱歉造成混乱。

【问题讨论】:

  • 大部分邮件客户端不会执行javascript,感谢上帝
  • 注释掉的代码元素不是要访问的DOM中的元素。

标签: javascript html comments


【解决方案1】:

邮件客户端不允许在消息中使用 JavaScript。它允许潜在的有害内容,例如黑客窃取浏览器 cookie 的代码。大多数电子邮件客户端也不喜欢 HTML 消息。

所以,不要使用 HTML 邮件,而要坚持使用普通邮件。

【讨论】:

    【解决方案2】:

    您不能在电子邮件客户端中执行代码(例如 JS)。也许某些恐龙电子邮件客户端在其早期版本中曾经允许这样做,但由于该“功能”会带来安全问题,因此没有任何健全的电子邮件客户端(基于浏览器或桌面)会允许这样做。

    我的第一个想法是建议研究是否可以使用条件内联 CSS(例如 &lt;div style="display:none;[some clever css that only ie will figure out then display:block]"&gt;&lt;/div&gt; ... followed by other per-browser DIV+inline-CSS variations here),但这是一个很长的问题。见this question。但是,即使确实存在这样的 CSS 技巧,您仍然不能依赖它们,因为您无法知道用户将使用哪个电子邮件客户端来查看您的消息。

    【讨论】:

    • 很抱歉造成混淆,脚本不是电子邮件的一部分。它之前在模板上运行,以创建作为电子邮件发送的实际 html。
    猜你喜欢
    • 2011-04-15
    • 2013-07-10
    • 2014-07-06
    • 2020-12-13
    • 2011-09-14
    • 2016-06-12
    • 2021-09-09
    • 2012-04-29
    • 1970-01-01
    相关资源
    最近更新 更多