2016-04-25 3 views
1

У меня есть документ, где мне нужно найти текст или слово, каждый раз, когда я запускаю функцию, выбор должен перейти к следующему, если будет найдено слово или текст. Если это конец, он должен взять меня наверх круговым способом, как найти опцию в блокноте.Как сделать закрытый поиск в Документах Google?

Есть ли способ сделать это?

Я знаю около findText(searchPattern, from), но я не понимаю, как его использовать.

+0

Где вопрос? Это отформатировано почти как запрос, который не является природой этого сообщества. Если вы пытались что-то сделать, оно не работает, и вы попытались его исправить/отладить. Отправьте свой код, любые ошибки, которые вы получаете, и информацию о том, что вы пробовали. –

+0

Вы можете просто использовать функцию подстроки Javascript, можете ли вы включить свой документ и его формат? – Amir

ответ

1

В DocumentApp имеется несколько оберток и классов. Они помогают работать с содержимым файла.

Необходимо тщательно понять, что они несут ответственность. В вашем случае код ниже должен работать нормально:

function myFunctionDoc() { 

    // sets the search pattern 
    var searchPattern = '29'; 

    // works with current document 
    var document = DocumentApp.getActiveDocument(); 

    // detects selection 
    var selection = document.getSelection(); 

    if (!selection) { 
     if (!document.getCursor()) return; 
     selection = document.setSelection(document.newRange().addElement(document.getCursor().getElement()).build()).getSelection(); 
    } 
    selection = selection.getRangeElements()[0]; 

    // searches 
    var currentDocument = findNext(document, searchPattern, selection, function(rangeElement) { 
     // This is the callback body 
     var doc = this; 
     var rangeBuilder = doc.newRange(); 
     if (rangeElement) { 
      rangeBuilder.addElement(rangeElement.getElement()); 
     } else { 
      rangeBuilder.addElement(doc.getBody().asText(), 0, 0); 
     } 
     return doc.setSelection(rangeBuilder.build()); 
    }.bind(document)); 

} 

// the search engine is implemented on body.findText 
function findNext(document, searchPattern, from, callback) { 
    var body = document.getBody(); 
    var rangeElement = body.findText(searchPattern, from); 
    return callback(rangeElement); 
} 

Он ищет шаблон. Если body.findText возвращает undefined, то он устанавливается поверх документа.

У меня есть суть о предмете https://gist.github.com/oshliaer/d468759b3587cfb424348fa722765187

+1

@ user3436029 Этот ответ помог вам? Обычно обозначается как разрешенный. – oshliaer

Смежные вопросы