- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试弄清楚如何使用
DocumentApp.getActiveDocument().setSelection(range);
在 Google Docs 文本文档中,选择从当前光标位置(或选择的开头)到结尾的所有文本,但我不明白如何创建必要的 Range
反对这样做。
(引用文献:setSelection
、Document
)
有一个有用的 cursor inspector可以从这里issue-post ,这清楚地表明所选内容的“偏移量”是相对于其所在的当前段落(或技术上, Element
)。因此,如果所选内容是列表元素中的前五个字符3,那么它的偏移量是 0 和 4,在它之前或之后没有元素(段落)的真实上下文。
从文档末尾进行选择(我在列表后添加了一些空段落):
我发现的最接近的是 this example ,这会增加选择范围以包含文档中的每个表格。
// Change the user's selection to a range that includes every table in the document.
var doc = DocumentApp.getActiveDocument();
var rangeBuilder = doc.newRange();
var tables = doc.getBody().getTables();
for (var i = 0; i < tables.length; i++) {
rangeBuilder.addElement(tables[i]);
}
doc.setSelection(rangeBuilder.build());
那么,如何使用 RangeBuilder
创建 Range
以“当前光标位置”(或当前选择的开始)开始,以“文档结束”结束?
谢谢。
最佳答案
试试这个
var doc = DocumentApp.getActiveDocument();
var rangeBuilder = doc.newRange();
var currentElement = doc.getCursor().getElement();
rangeBuilder.addElement(currentElement);
var sibling = currentElement.getNextSibling();
while (sibling !== null) {
rangeBuilder.addElement(sibling);
sibling = sibling.getNextSibling();
}
doc.setSelection(rangeBuilder.build());
<小时/>
@teatimer,
你的答案似乎是正确的!这是the document我在用着。我在下面列出了一些诊断。我希望它有帮助。
(请原谅对此回复的编辑。这确实不是编辑答案的目的,而是评论的信息太多。完成后请随意删除它。)
<小时/>当光标位于最顶部时,它可以工作:
如果光标位于中间零列的空行中,则相同:
如果光标位于文档中的第一个和第二个字符之间,则当您运行该命令时,它仅选择当前段落:
选择文档中的第一个字符会导致错误:
与任何选择一样,看起来:
关于javascript - 如何从 Google Docs 文本文档的光标(或选择开始)到末尾进行选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24846417/
我是一名优秀的程序员,十分优秀!