0

I'm trying to pull the URL of a hyperlinked word from within a paragraph element in a Google Document using Google Apps Script. Below are two GAS functions. The 1st doesn't work. The hyperlink is only on one word in the paragraph. The 2nd does work. The hyperlink is on the entire paragraph.

Can someone help me modify this so it can extract the link from a single word within a paragraph?

GAS Functions

//Does NOT work if link is on a word in paragraph
//Does NOT work if link is on a word in paragraph
//Does NOT work if link is on a word in paragraph
function myFunctionP1() {
  //Find out how many Children there are
  var body = DocumentApp.getActiveDocument().getBody();
  Logger.log(body.getNumChildren());

  //Find out which child is table
  var table = body.getChild(2); //table is child#2
  Logger.log(table);

  //Find tableCell inside of table
  var tableCell = table.getChild(0).getChild(0); //tableCell
  Logger.log(tableCell)

  //Find paragraph inside of tableCell 
  //I think, but I'm not sure, the HYPERLINK will be found somewhere within the PARAGRAPH element. But I can't figure out how to get to it.
  var paragraph = tableCell.getChild(0); //paragraph element
  Logger.log(paragraph)

  //Get paragraph text 
  var paragraphText = paragraph.getText(); //paragraph text
  Logger.log(paragraphText)

  //Get HYPERLIINK from paragraph text 
  var paragraphHYPERLINK = paragraph.getLinkUrl(); //paragraph text
  Logger.log(paragraphHYPERLINK)  

}



//Works if link is on entire paragraph
//Works if link is on entire paragraph
//Works if link is on entire paragraph
function myFunctionP2() {
  //Find out how many Children there are
  var body = DocumentApp.getActiveDocument().getBody();
  Logger.log(body.getNumChildren());

  //Find out which child is table
  var table = body.getChild(4); //table is child#2
  Logger.log(table);

  //Find tableCell inside of table
  var tableCell = table.getChild(0).getChild(0); //tableCell
  Logger.log(tableCell)

  //Find paragraph inside of tableCell 
  //I think, but I'm not sure, the HYPERLINK will be found somewhere within the PARAGRAPH element. But I can't figure out how to get to it.
  var paragraph = tableCell.getChild(0); //paragraph element
  Logger.log(paragraph)

  //Get paragraph text 
  var paragraphText = paragraph.getText(); //paragraph text
  Logger.log(paragraphText)

  //Get HYPERLIINK from paragraph text 
  var paragraphHYPERLINK = paragraph.getLinkUrl(); //paragraph text
  Logger.log(paragraphHYPERLINK)  

}

Active Google Document

https://docs.google.com/document/d/1xnqucqBxiapk81wKeTzyh_JMpIdGyZMsHkZCODgLADc/edit#

0

I was missing the .asText() method. The code below will pull the URL from the text character in position 18 of the paragraph string.

//Get HYPERLIINK from single character in a paragraph 
  var paragraphHYPERLINK = paragraph.asText().getLinkUrl(18); //paragraph text
  Logger.log(paragraphHYPERLINK) 

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.