Office JS getSelectedDataAsync 查找当前选择的 parent
Office JS getSelectedDataAsync find parent of current selection
使用 Office JS,我可以使用 getSelectedDataAsync() 获取当前选择,但我试图找到我选择的 parents 和祖先,以确定选择是否在 table 单元格或段落。
有办法吗?
如果(选择在 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");
});
});
});
所以简而言之,Document 对象上有一个名为 getSelection 的方法,它是 returns 一个范围。
范围包含段落集合和 table 集合。如果这些都被填满,应该会给你答案。
为 Stewart 的回答添加更多细节:是的,请使用 document.getSelection 获取选择范围,目前您可以从那里获取:
- parentBody - 如果文档中有多个部分,则很有用。
- parentContentControl - 查明所选内容是否在内容控件中
- 父表
- parentTableCell
要找出所选内容中包含的内容,请使用集合:
- 段,
- 内容控件,
- 表格,
- 内联图片,
- 列表,
等
在这里查看帮助
查看此示例,了解如何访问 table 单元格。
请注意,在此示例中,如果选择不在 table 单元格内,则会引发异常。如果你想验证你需要使用方法的 parentTableCellOrNullObject 风格..你可以检查是否返回了 nullObject(意味着选择不在 table)
Word.run(function (context) {
context.document.getSelection().parentTableCell.body.insertText("Hello World","end")
return context.sync()
})
谢谢!
使用 Office JS,我可以使用 getSelectedDataAsync() 获取当前选择,但我试图找到我选择的 parents 和祖先,以确定选择是否在 table 单元格或段落。
有办法吗? 如果(选择在 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");
});
});
});
所以简而言之,Document 对象上有一个名为 getSelection 的方法,它是 returns 一个范围。
范围包含段落集合和 table 集合。如果这些都被填满,应该会给你答案。
为 Stewart 的回答添加更多细节:是的,请使用 document.getSelection 获取选择范围,目前您可以从那里获取:
- parentBody - 如果文档中有多个部分,则很有用。
- parentContentControl - 查明所选内容是否在内容控件中
- 父表
- parentTableCell
要找出所选内容中包含的内容,请使用集合:
- 段,
- 内容控件,
- 表格,
- 内联图片,
- 列表,
等
在这里查看帮助
查看此示例,了解如何访问 table 单元格。 请注意,在此示例中,如果选择不在 table 单元格内,则会引发异常。如果你想验证你需要使用方法的 parentTableCellOrNullObject 风格..你可以检查是否返回了 nullObject(意味着选择不在 table)
Word.run(function (context) {
context.document.getSelection().parentTableCell.body.insertText("Hello World","end")
return context.sync()
})
谢谢!