我正在使用Outlook 2016的Office365加载项,该加载项允许用户使用任务窗格中的按钮更改电子邮件正文。
任务窗格中的HTML:
<p><button onclick="createLongBody()">Set Long Body</button></p>
<p><button onclick="createShortBody()">Set Short Body</button></p>
<div id="status"></div>
在Javascript中:
function createLongBody() {
var longText = "<html><body>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/>Hello<br/></body></html>";
Office.context.mailbox.item.body.setAsync(longText, { coercionType: Office.CoercionType.Html }, function () {
$("#status").html("Long email complete!");
});
};
function createShortBody() {
Office.context.mailbox.item.body.setAsync("<html><body><h1>Hello</h1></body></html>", { coercionType: Office.CoercionType.Html }, function () {
$("#status").html("Short email complete!");
});
要复制:
结果:
状态文字更改为&#34;简短的电子邮件完成&#34;,但新的简短电子邮件不会显示 - 正文只是空白。
我不确定这是否是Office加载项API错误,但是想将它呈现给社区以查看是否有人有任何想法? 其他人可以复制吗?谢谢!
使用HTML / JS编辑以复制
答案 0 :(得分:1)
您是否在第一次更改身体上下文的回调中调用了后续调用?如果不是,它可能无法工作,因为 setAsync 是异步函数。
我正在尝试重现此问题,但失败了。下面的测试功能对我很有用:
function setBody() {
var theHtml = "<html><body><h1>Hello</h1><h2> Jack,</h2><h3>Rose</h3> <h4>..</h4><h1>Hello</h1><h2> Jack,</h2><h3>Rose</h3> <h4>..</h4><h1>Hello</h1><h2> Jack,</h2><h3>Rose</h3> <h4>..</h4><h1>Hello</h1><h2> Jack,</h2><h3>Rose</h3> <h4>..</h4><h1>Hello</h1><h2> Jack,</h2><h3>Rose</h3> <h4>..</h4></body></html>";
Office.context.mailbox.item.body.setAsync(theHtml, { coercionType: Office.CoercionType.Html }, function (asyncResult) {
var newHtml= theHtml.replace(/Rose/g, "rose");
Office.context.mailbox.item.body.setAsync(newHtml, { coercionType: Office.CoercionType.Html });
});
}
如果您仍然遇到问题,您是否介意分享完整的代码以帮助我们重现此问题?
答案 1 :(得分:0)