【发布时间】:2018-03-29 14:21:55
【问题描述】:
我注意到 Word 2016、Word for Mac 和 Word Online 之间的 office-js 不一致。
当插入具有块/段落格式的单个<p> 元素时,Word 2016 似乎不应用<p> 元素的style 属性中定义的段落格式。我可以在文档正文和内容控件中重现此内容。
当我在 Word 2016 或 Word for Mac 上的空文档中执行此 sn-p 时:
await Word.run(async (context) => {
context.document.body.insertHtml(
"<p style='text-align:right'>This should be right aligned!</p>",
"replace");
await context.sync();
});
段落被插入但保持左对齐。
当我在 Word Online 上执行相同的 sn-p 时,段落右对齐,正如预期的那样。
一个丑陋的解决方法是在<p> 块之后添加一个<br/> 元素:
"<p style='text-align:right'>This should be right aligned!</p><br/>",
这会强制 Word 2016 应用 <p> 块的格式,但我们不能在所有情况下都应用它,因为它有时会破坏页面的其余部分。这也不是我们期望的。
是否有另一种插入 HTML 的方法,该 HTML 包含适用于所有主机的单段格式 <p> 块?
【问题讨论】:
-
这听起来确实像一个错误。我不确定我期望在这里看到哪种行为,但它肯定应该跨平台保持一致。我怀疑
<p>的预期行为取决于您将其插入的位置(即在现有段落的中间与在新行上)。您正在测试 Word 2016 的哪些版本/内部版本,这在 Windows 和 Mac 之间是否 100% 一致? -
我以前见过这个,我认为这是一个已知的错误。如果没记错的话,它是忽略样式属性的最后一段。请尝试在 insertHtml 的同一个调用中插入多个段落,并在 style 属性中尝试不同类型的格式。我想你会发现除了最后一段之外一切都正常。
-
@MarcLaFleur 我希望这种行为与 Word Online 上的行为一样,因为它尊重
<p>元素的段落格式。我在 Word 2016 Version 1804 Build 9226.2021(Office Insider)上复制了这个。据我所知,它在 Windows 和 Mac 上的行为相同。 -
@RickKirkham 你是对的,如果我插入两个连续的
<p>块,则应用第一个块的文本对齐样式,但忽略第二个块的文本对齐样式。有趣的是,如果我添加color样式,它会按预期应用于两个块。似乎问题仅限于段落格式样式。 -
@Hlynur 我在 font-family 和其他样式中看到过它。我很惊讶它不会发生在颜色上。
标签: javascript ms-word office-js