2014-09-11 6 views
2

приложения Google имеет несколько простых триггеров: https://developers.google.com/apps-script/guides/triggers/Google Docs Добавить на onEdit

Одним из которых является onEdit. Как указано, onEdit запускается для электронных таблиц Google, но он не срабатывает для Документов Google.

Есть ли чистый способ определить, когда пользователь изменил документ и запустить сценарий, когда это произойдет?

+0

Я ничего не знаю об этом API, но похоже, что стоит взглянуть на: [Файлы Смотреть] (https://developers.google.com/drive/v2/reference/files/watch) –

+1

API файлов файлов - это тот, который вам не нужен, если вы не используете сценарий приложений для своей работы. Btw, еще один аналогичный q/a - http://stackoverflow.com/questions/19781406/google-doc-script-onedit –

+1

, вам также может быть интересно прочитать [этот ответ] (http://stackoverflow.com/questions/ 24773177/how-to-poll-a-google-doc-from-an-add-on/24773178 # 24773178) –

ответ

2

Это не полный ответ, но это может (не уверен) помочь вам в соответствии с вашими фактическими требованиями. У вас может быть такая функция, а затем с помощью установленных триггеров вы можете каждую минуту вызывать эту функцию, чтобы опросить документ и проверить, редактировал ли он его или нет.

function isEdited() 
    { 
     var MyDoc = DocumentApp.getActiveDocument().getBody(); 
     var Text = MyDoc.editAsText().getText(); 
     var DocLen= Text.length; 
     if(DocLen!= PropertiesService.getDocumentProperties().getProperty('DocLen')) 
     { 
     CallYourFunction(); 
     PropertiesService.getDocumentProperties().setProperty('DocLen', DocLen) 
     }  
    } 

Задержка 60 секунд на вашем обслуживании ... 60 с - это максимальная задержка, которая может произойти здесь.

+1

Привет, Anees, см. Также сообщение, которое я связал с комментарием в вопросе, задержка обновления составляет около 2 секунд, но это не так просто, как ваше решение, конечно. (спасибо за вашу простоту) –

+0

Спасибо Серж, это решение в реальном времени ..... я тоже искал такое решение, я тоже столкнулся с этой проблемой задержки на 60 секунд и не был уверен в том, что делать следующий ... Эй, Диланья, подумай, что один Серж указал, а не мой .... :-) –