2015-11-21 3 views
0

Я пытаюсь создать надстройку для Документов, которые позволят моим ученикам выделять выделение текста с использованием определенных предопределенных инструментов подсветки на боковой панели надстройки (аналогично this add-on, но с предопределенными средствами подсветки).Как установить атрибуты Docs с боковой панели Google?

Я смог использовать сценарии Google для взаимодействия с файлами дисков, создания папок, переименования файлов и т. Д., И я знаю, как использовать функции .onclick в HTML. Там, где я застрял, вы получаете кнопки на боковой панели, чтобы изменить атрибуты выбранного текста внутри документа при нажатии кнопки.

Основываясь на моем чтении в документации для разработчиков, мой .gs сценарий выглядит следующим образом:

function highlightStyleGreen() { 
     var selection = DocumentApp.getActiveDocument().getSelection(); 
     if (selection) { 
     var elements = selection.getRangeElements(); 
     for (var i = 0; i < elements.length; i++) { 
     var element = elements[i];} 
     var highlightStyleGreen = {}; 
     highlightStyle[DocumentApp.Attribute.BACKGROUND_COLOR] = '#7CCD7C'; 

     selection.setAttributes(highlightStyleGreen); 
     } 
    } 

В HTML, кнопка назначается так:

< кнопки OnClick = "highlightStyleGreen () "> Основная идея </button>

Очевидно, что это не работает, но я не уверен, что попробовать дальше.

Помощь?

+0

Что не работает? Вызывается функция 'highlightStyleGreen()'? Выполняется ли одна линия? Проходит ли вторая строка? и т. д. Есть ли сообщения об ошибках? Каковы сообщения об ошибках? В какой строке отображается сообщение об ошибке? –

ответ

0

если вы вызываете функцию Google-приложения-скрипта (включая пользовательские функции) из пользовательского диалога или боковой панели, синтаксис:

<button onclick="google.script.run.highlightStyleGreen()">Main Idea</button> 

документация: https://developers.google.com/apps-script/guides/html/communication


И здесь это код скрипта google-apps-script. Эта функция выделяет выделение пользователя зеленым цветом.

function highlightStyleGreen() { 

    //App>Doc>Body>Paragraph>Text 
    //selection>rangeElements>RangeElement>Element>Text 

    var selection = DocumentApp.getActiveDocument().getSelection(); 
    if (selection) { 

    //declare variables once before loop 
    var elements = selection.getRangeElements();  
    var rngEelement; 
    var element; 
    var text; 
    var startOffset; 
    var endOffsetInclusive; 

    //loop through selection 
    for (var i=0; i < elements.length; i++){ 
     rngElement = elements[i]; 
     element = rngElement.getElement(); 
     if (element) { 
     text = element.asText(); 
     if (text) { 
      //if we are on a 'partial element' we need to only grab the selected part of the text 
      if (rngElement.isPartial()) { 
      startOffset = rngElement.getStartOffset(); 
      endOffsetInclusive = rngElement.getEndOffsetInclusive(); 
      text.setBackgroundColor(startOffset, endOffsetInclusive, '#00FF00'); 
      } else { 
      text.setBackgroundColor('#00FF00'); 
      } 
     } 
     } 
    } 
    } 
} 

документация: https://developers.google.com/apps-script/guides/docs

+0

Это сработало отлично. Спасибо! Не понял, куда должен идти google.script.run. –

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