outlook - Outlook 更改 Office 加载项上的 html
问题描述
我尝试编写一个将链接插入电子邮件正文的 Outlook 插件。我想给链接一个样式,以便看起来像一个按钮,给用户一个更吸引人的体验。
我遇到的问题是,outlook 改变了元素的样式,而我在该元素上放置的内联样式正在丢失。
我正在插入 HTML,如下所示:
var tablePref = '<table align="left" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse;margin: 0;"><tr><td border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse;margin: 0;padding: 10px 18px;background:\'';
var backgroundColor = 'green'; //The color is user-given, I put green as an example
var tableSuf = '\'"><a href="https://somelink.com" style="text-decoration:none">Some text</a></td></tr></table>'
var item = Office.context.mailbox.item;
item.body.setAsync(tablePref+backgroundColor+tableSuf,
{
coercionType: Office.CoercionType.Html,
asyncContext: {}
},
function (asyncResult) {
if (asyncResult.status == Office.AsyncResultStatus.Failed)
{
//Show error dialog
}
else
{
//Successfully set data in item body.
}
});
我成功获取了邮件上的链接,看起来刚刚好,但是当我发送邮件时,这个按钮的 HTML 结构却变成了这样:
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" align="left" style="border-collapse: collapse">
<tbody>
<tr>
<td style="background: 'green';">
<p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 2.25pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-height-rule: exactly">
<a href="https://somelink.com" target="_blank" rel="noreferrer">
<span style="text-decoration: none">Some Text</span>
</a>
<!-- o ignored -->
</p>
</td>
</tr>
</tbody>
</table>
Outlook 正在更改我的 a 元素,这会导致邮件客户端使用下面的一行呈现该元素,因为该样式已被覆盖。有什么方法可以避免 Outlook 更改我的 HTML 或者这是一个已知错误?这发生在所有平台上(OWA、Outlook for Mac 16.21 和 Outlook for Windows)
谢谢你的帮助
解决方案
推荐阅读
- batch-file - 捕获通过管道传输到批处理文件的真正 STDIN
- ios - 如何在 IOS 中使用 OpusCodec 对实时音频进行编码和解码?
- linux - 使用 centos/systemd 作为基础镜像时,如何在 docker 文件 CMD 中启动 init 文件和 shell 脚本文件?
- c# - Unity3D - 鼠标悬停时沿 XY 轴旋转图像
- python - PYQT5 QMainWindow setCentralWidget 由多个框布局组成
- jquery - 多个引导轮播不会同时进行
- scala - 如何在 Scala 中将字符串读取为多边形(在 Databricks 上)
- amazon-web-services - 将 StackName 附加到 Cloudformation 资源
- wcf - wcf - 如何处理具有共享相同操作的多个端点的服务
- react-native - 在移动设备上注销 Okta 托管的登录页面(React Native)