Используйте replaceText() для выделенного текста, а не всего элемента документа Google.

Как я могу использовать replaceText() для замены слова в выбранной области элемента, следующий код заменит совпадения во всем элементе, а не в выбранной области. любые идеи, чтобы исправить это?

Я знаю, что могу использовать isPartial() для разделения частичного выделения, но не могу понять, как заменить выделенный текст.

function test() {
  var selection = DocumentApp.getActiveDocument().getSelection();
  if (!selection) {
    DocumentApp.getUi().alert('Cannot find a selection in the document.');
    return;
  }

 var selectedElements = selection.getSelectedElements();
 for (var i = 0; i < selectedElements.length; ++i) {
  var selectedElement = selectedElements[i];
  //if (selectedElement.isPartial()) {
    selectedElement.getElement().asText().replaceText("alpha","beta");
    selectedElement.getElement().asText().replaceText("gamma","delta");
  //}
}
}

person Zim3r    schedule 25.04.2014    source источник


Ответы (1)


Использовать

selectedElement.getElement().replaceText("alpha","beta");
person André Levy    schedule 09.09.2015
comment
Это не дает ответа на вопрос. Чтобы подвергнуть критике или запросить разъяснения у автора, оставьте комментарий под его сообщением — вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно репутация, вы сможете комментировать любой пост. - person Henrik Andersson; 09.09.2015
comment
Это игнорирует границы выбора и выполняет замены во всем элементе, что явно не то, о чем идет речь. - person ; 13.06.2016
comment
@HenrikAndersson: Чем это не ответ? Он пытается ответить на вопрос. - person Casimir Crystal; 13.06.2016
comment
@KevinGuan Это было почти год назад, я понятия не имею, что я тогда отметил. Скорее всего, это вообще не решение. :) - person Henrik Andersson; 13.06.2016
comment
@HenrikAndersson:​​​​​​​​​​​​​​​​​​​​​​​​​Ой, извините, только что заметил дату. Но, тем не менее, не голосуйте за удаление, а голосуйте против и комментируйте, если, кстати, считаете, что ответ неверен;) - person Casimir Crystal; 13.06.2016
comment
@KevinGuan Да, сумки, как я уже сказал, если я отметил это, значит, в то время на это была веская причина. Если это было позже отредактировано, я понятия не имею. - person Henrik Andersson; 13.06.2016
comment
@HenrikAndersson: вы можете увидеть, был ли отредактирован ответ, когда и как, в журнале, просто щелкнув ссылку: stackoverflow.com/posts /32471573/revisions Я не могу комментировать, потому что у меня недостаточно репутации. КевинГуан: несогласие с ответом не является причиной для его понижения. Как вы заметили, причина понизить голосование в том, что это НЕ попытка ответа. Результат: это ЕДИНСТВЕННАЯ попытка ответа на этот вопрос. - person André Levy; 11.06.2018