Office JS insertHTML和段落格式的主机行为不一致

Hly*_*nur 5 javascript ms-word office-js

我注意到Word 2016,Word for Mac和Word Online之间的office-js不一致。

当插入<p>具有块/段落格式的单个元素时,Word 2016似乎没有应用元素style属性中定义的段落格式<p>。我可以在文档正文和内容控件中均重现此内容。

当我在Word 2016或Word for Mac上的空文档中执行此代码段时:

await Word.run(async (context) => {

    context.document.body.insertHtml(
        "<p style='text-align:right'>This should be right aligned!</p>",
        "replace");

    await context.sync();
});
Run Code Online (Sandbox Code Playgroud)

该段被插入,但保持左对齐。

当我在Word Online上执行相同的代码段时,该段落将按预期方式右对齐。

ScriptLab要点

一个丑陋的解决方法是<br/>在该<p>块之后添加一个元素:

"<p style='text-align:right'>This should be right aligned!</p><br/>",
Run Code Online (Sandbox Code Playgroud)

这迫使Word 2016应用<p>块的格式,但是我们不能在所有情况下都应用此格式,因为它有时会破坏页面的其余部分。这也不是我们期望要做的。

有没有其他方法可以插入HTML,该HTML包含可在所有主机上使用的单个段落格式的 <p>块?

Ric*_*ham 1

这是一个已知的错误。在它被修复之前,您已经找到了可能是最好的解决方法,即添加<br/>(or 和empty <p></p>)。