Javascript 谷歌应用程序脚本::是否可以从谷歌文档中获取光标位置或所选文本
是否有任何Google Apps脚本API来获取光标位置或从Google文档中获取所选文本。我找了这个,什么也没找到。如果有人知道这个案子,请帮助我 谢谢,Javascript 谷歌应用程序脚本::是否可以从谷歌文档中获取光标位置或所选文本,javascript,google-apps-script,Javascript,Google Apps Script,是否有任何Google Apps脚本API来获取光标位置或从Google文档中获取所选文本。我找了这个,什么也没找到。如果有人知道这个案子,请帮助我 谢谢, Vinod目前没有这样的API。然而,有一个问题。您可以启动此问题以注册您的兴趣,并收到更新通知。尝试以下方法。这肯定是一个解决办法,但它可能适合你的需要。此方法的一个缺点是,它将选择指定颜色的所有高亮显示文本 function findHighlighted() { var body = DocumentApp.getActiveDo
Vinod目前没有这样的API。然而,有一个问题。您可以启动此问题以注册您的兴趣,并收到更新通知。尝试以下方法。这肯定是一个解决办法,但它可能适合你的需要。此方法的一个缺点是,它将选择指定颜色的所有高亮显示文本
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))}
}
函数findHighlighted(){
var body=DocumentApp.getActiveDocument().getBody(),
bodyTextElement=body.editAsText(),
bodyString=bodyTextElement.getText(),
char,len;
for(char=0,len=bodyString.length;char
前面的答案在技术上是正确的,因为API中尚未包含使用鼠标/光标选择文本的直接方法。有一个使用以下方法的示例:
/**
* 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.';
}
}
/**
*获取用户选择的文本。如果没有选择,
*此函数显示一条错误消息。
*
*@return{Array.}返回所选文本。
*/
函数getSelectedText(){
var selection=DocumentApp.getActiveDocument().getSelection();
如果(选择){
var text=[];
var elements=selection.getSelectedElements();
对于(var i=0;i
我已经选择了这种基于背景色获取选定文本的方法。但我需要的是鼠标选定文本。谢谢你的确认。