Ms word 替换MS word Office.js加载项中当前段落的文本
在Word插件中,我正在尝试:Ms word 替换MS word Office.js加载项中当前段落的文本,ms-word,office-js,Ms Word,Office Js,在Word插件中,我正在尝试: 接收documentSelectionChanged事件 获取当前段落的文本,然后 将当前段落中的字符串foo替换为字符串bar 除了最后一部分,一切都正常。Word文档的文本没有更改 这是我的代码: function updateText() { var range, foo_range, par; Word.run(function (context) { range = context.document.getSelection();
documentSelectionChanged
事件foo
替换为字符串bar
function updateText() {
var range, foo_range, par;
Word.run(function (context) {
range = context.document.getSelection();
range.paragraphs.load('items');
return context.sync()
.then(function() {
par = range.paragraphs.items[0];
console.log(par.text); // THIS WORKS!
foo_range = par.search('foo');
foo_range.load('items');
})
.then(context.sync)
.then(function() {
console.log(foo_range.items[0].text); // THIS WORKS!
foo_range.items[0].insertText('bar', 'Replace');
// Here, I am trying all the load options I can think of
foo_range.load('items');
foo_range.items[0].load('text');
foo_range.load('text');
range.paragraphs.load('items');
range.paragraphs.load('text');
return context.sync();
});
});
}
知道为什么Word文档中的
foo
没有被bar
取代吗?我无法复制。您的代码在桌面Office 365上对我有效
顺便说一句,在最后一个
context.sync
调用之前,这些加载
调用都不会执行任何操作,您应该删除它们。在同步后要读取属性时,只需加载属性(然后进行同步)。因为您只是在向文档写入,所以不需要加载任何内容 奇怪的是,这是我的代码第二次为你而不是我工作。你知道问题出在哪里吗?例如,特定于Mac的错误、清单中的配置或其他东西?首先,查看您的代码是否在中工作。如果不是,我会怀疑是Mac特定的bug,在这种情况下,您应该在.Rick上提出一个问题,因此问题是我清单中的权限。我有ReadAllDocument
,但我需要ReadWriteDocument
。我忘了舱单上有这样的权限。