`context.document.body.insertOoxml` 破坏文档,使单词崩溃
`context.document.body.insertOoxml` breaks documents, crashes word
我知道这不是一个问题,但我是 Rick Kirkham 从 here 派来这里的,显然询问 SO 是为 Microsoft 产品提交错误的方式:-p
当我使用 insertOoxml
和 'replace' 参数时,Word 会在末尾插入额外的内容。例如,在 Script Lab 中使用以下代码时,使用一个新的空 word 文档:
$("#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 变慢。插入一个纯文本内容控件并触发 'run' 两次将使单词崩溃(似乎是空指针取消引用)。
这不是与 Script Lab 相关的问题,但使用 Script Lab 是重现它的最简单方法。
Word 版本:1703,内部版本 7967.2139,2016 MSO (16.0.7927.1020) 32 位。
预期行为:Word 不会崩溃,也不会引入额外的内容。
好的,让我们提出一个问题:如何在不破坏文档的情况下使用完整文档insertOoxml(ooxml, 'replace')
?
我用较新的版本验证了 Word 没有崩溃,但确实添加了一个额外的空段落。此错误已于昨天解决,修复程序将在下个月提供。谢谢!
我知道这不是一个问题,但我是 Rick Kirkham 从 here 派来这里的,显然询问 SO 是为 Microsoft 产品提交错误的方式:-p
当我使用 insertOoxml
和 'replace' 参数时,Word 会在末尾插入额外的内容。例如,在 Script Lab 中使用以下代码时,使用一个新的空 word 文档:
$("#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 变慢。插入一个纯文本内容控件并触发 'run' 两次将使单词崩溃(似乎是空指针取消引用)。
这不是与 Script Lab 相关的问题,但使用 Script Lab 是重现它的最简单方法。
Word 版本:1703,内部版本 7967.2139,2016 MSO (16.0.7927.1020) 32 位。
预期行为:Word 不会崩溃,也不会引入额外的内容。
好的,让我们提出一个问题:如何在不破坏文档的情况下使用完整文档insertOoxml(ooxml, 'replace')
?
我用较新的版本验证了 Word 没有崩溃,但确实添加了一个额外的空段落。此错误已于昨天解决,修复程序将在下个月提供。谢谢!