首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替换MS word Office.js外接程序中当前段落的文本

替换MS word Office.js外接程序中当前段落的文本
EN

Stack Overflow用户
提问于 2020-04-02 15:36:17
回答 1查看 577关注 0票数 1

总之,我试着:

  1. 接收documentSelectionChanged事件,
  2. 获取当前段落的文本,
  3. 将当前段落中的字符串foo替换为字符串bar

G 210

除了最后一部分外,一切都正常。单词文档的文本没有变化。

这是我的密码:

代码语言:javascript
复制
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取代吗?

EN

回答 1

Stack Overflow用户

发布于 2020-04-02 16:51:17

我不能复制。您的代码在桌面Office 365上适用于我。

顺便说一句,在上一个load之前,所有这些context.sync调用都不会做任何事情,您应该删除它们。在同步之后要读取属性时,只需要加载属性(然后进行同步)。由于您只是在写入文档,所以不需要加载任何内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60995349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档