是否有任何 Google Apps 脚本 API 来获取光标位置或从 Google 文档中获取所选文本。我已经搜索过这个并没有找到任何东西。如果有人知道这个案例,请帮助我。
谢谢,维诺德
是否有任何 Google Apps 脚本 API 来获取光标位置或从 Google 文档中获取所选文本。我已经搜索过这个并没有找到任何东西。如果有人知道这个案例,请帮助我。
谢谢,维诺德
附加组件快速入门有一个示例,方法如下:
/**
* Gets the text the user has selected. If there is no selection,
* this function displays an error message.
*
* @return {Array.<string>} The selected text.
*/
function getSelectedText() {
var selection = DocumentApp.getActiveDocument().getSelection();
if (selection) {
var text = [];
var elements = selection.getSelectedElements();
for (var i = 0; i < elements.length; i++) {
if (elements[i].isPartial()) {
var element = elements[i].getElement().asText();
var startIndex = elements[i].getStartOffset();
var endIndex = elements[i].getEndOffsetInclusive();
text.push(element.getText().substring(startIndex, endIndex + 1));
} else {
var element = elements[i].getElement();
// Only translate elements that can be edited as text; skip images and
// other non-text elements.
if (element.editAsText) {
var elementText = element.asText().getText();
// This check is necessary to exclude images, which return a blank
// text element.
if (elementText != '') {
text.push(elementText);
}
}
}
}
if (text.length == 0) {
throw 'Please select some text.';
}
return text;
} else {
throw 'Please select some text.';
}
}
尝试以下方法突出显示,然后选择。这绝对是一种解决方法,但它可能适合您的需求。此方法的一个缺点是它将选择指定颜色的所有突出显示的文本。
function findHighlighted() {
var body = DocumentApp.getActiveDocument().getBody(),
bodyTextElement = body.editAsText(),
bodyString = bodyTextElement.getText(),
char, len;
for (char = 0, len = bodyString.length; char < len; char++) {
if (bodyTextElement.getBackgroundColor(char) == '#ffff00') // Yellow
Logger.log(bodyString.charAt(char))}
}
先前的答案在技术上是正确的,因为 API 中尚未包含使用鼠标/光标选择文本的直接方法。
目前没有这样的 API。但是,问题跟踪器上有一个未解决的问题。您可以在此问题上加注星标以注册您的兴趣并收到更新通知