Office JS getSelectedDataAsync查找当前选择的父级

时间:2017-06-22 03:49:43

标签: office-js

使用Office JS,我可以使用getSelectedDataAsync()获取当前选择,但我正在尝试找到我选择的父项和祖先,以确定选择是否在表格单元格或段落中。

有办法做到这一点吗? 如果(选择在TableCell中)     做这个 其他     找时间做

感谢大家的帮助,以下是更新后的代码:

Word.run(function (context) {
    var range = context.document.getSelection();
    context.load(range);
    return context.sync().then(function () {
        var parentTableCell = range.parentTableCellOrNullObject;
        context.load(parentTableCell);
        return context.sync().then(function () {
            if (parentTableCell.isNullObject)
                console.log("Not in a table cell");
            else
                console.log("In a table cell");
        });
    });
});

2 个答案:

答案 0 :(得分:0)

所以说,在Document对象上有一个名为getSelection的方法,它返回一个范围。

范围包含段落集合和表格集合。取决于填写这些内容应该给你答案。

答案 1 :(得分:0)

为斯图尔特的回答添加更多细节:是的,请使用document.getSelection来获取选择的范围,并从那里获得:

  1. parentBody - 如果文档中有多个部分,则非常有用。
  2. parentContentControl - 查明选择是否在内容控件中
  3. parentTable
  4. parentTableCell
  5. 要找出选择中包含的内容,请使用集合:

    1. 段落,
    2. contentControls,
    3. 表,
    4. inlinePictures,
    5. 列表,
    6. 等。 看看这里的帮助 Select no longer highlighting text on iPad (word)

      查看此示例,了解如何访问表格单元格。 请注意,在此示例中,如果选择不在表格单元格内,则会引发异常。如果你想验证你需要使用方法的parentTableCellOrNullObject风格..你可以检查是否返回了nullObject(意味着选择不在表中)

      
      
         Word.run(function (context) {
              context.document.getSelection().parentTableCell.body.insertText("Hello World","end")
              return context.sync()
           })
      
      
      

      谢谢!