Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌应用程序脚本::是否可以从谷歌文档中获取光标位置或所选文本_Javascript_Google Apps Script - Fatal编程技术网

Javascript 谷歌应用程序脚本::是否可以从谷歌文档中获取光标位置或所选文本

Javascript 谷歌应用程序脚本::是否可以从谷歌文档中获取光标位置或所选文本,javascript,google-apps-script,Javascript,Google Apps Script,是否有任何Google Apps脚本API来获取光标位置或从Google文档中获取所选文本。我找了这个,什么也没找到。如果有人知道这个案子,请帮助我 谢谢, Vinod目前没有这样的API。然而,有一个问题。您可以启动此问题以注册您的兴趣,并收到更新通知。尝试以下方法。这肯定是一个解决办法,但它可能适合你的需要。此方法的一个缺点是,它将选择指定颜色的所有高亮显示文本 function findHighlighted() { var body = DocumentApp.getActiveDo

是否有任何Google Apps脚本API来获取光标位置或从Google文档中获取所选文本。我找了这个,什么也没找到。如果有人知道这个案子,请帮助我

谢谢,
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
我已经选择了这种基于背景色获取选定文本的方法。但我需要的是鼠标选定文本。谢谢你的确认。