我知道这不是一个问题,但是我被来自here的Rick Kirkham送到了这里,并且显然是在询问是否是为微软产品提交错误的方法:-p
当我将insertOoxml
与'replace'参数一起使用时,Word将在末尾插入额外的内容。例如,在Script Lab中使用以下代码时,使用新的空单词文档:
$("#run").click(run);
function run() {
Word.run(function (context) {
var ooxml = context.document.body.getOoxml();
return context.sync().then(function () {
console.log(ooxml.value.length);
context.document.body.insertOoxml(ooxml.value, Word.InsertLocation.replace);
return context.sync();
});
});
}
每次触发此代码时,word文档都会在正文末尾获取一个附加段落。当文档在内容控件中结束时,它会变得更加疯狂:获取新文档,插入新的富文本内容控件。触发run
将复制内容控件并将其插入其自身内部(因此您有两个内容控件,其中一个由另一个控件包含)。单击run
几次将创建大量嵌套内容控件并使Word慢速爬行。插入纯文本内容控件并触发“运行”两次将导致单词崩溃(似乎是空指针取消引用)。
这不是与Script Lab相关的问题,但使用Script Lab是重现它的最简单方法。
Word版本:1703,build 7967.2139,2016 MSO(16.0.7927.1020)32位。
预期的行为:Word不会崩溃,也不会引入额外的内容。
好的,让我们提出一个问题:如何在不破坏文档的情况下使用完整文档insertOoxml(ooxml, 'replace')
?