Как связать скрипт приложений Google на сайте Google - PullRequest
0 голосов
/ 20 января 2012

Я создаю сайт Google для своей компании и использую скрипты приложений Google, чтобы сделать немного больше на сайте.Мне бы очень хотелось связать скрипт с выпадающим меню, которое я сделал.Однако я не могу понять, как связать скрипт.Я знаю, как связать скрипт, как гаджет Google и как отдельную ссылку, но мне бы очень хотелось, чтобы скрипт запускался, когда я нажимал на элемент в раскрывающемся меню.

Ответы [ 2 ]

0 голосов
/ 01 декабря 2012

Не уверен, что вы подразумеваете под "связать скрипт", у вас есть код где-нибудь еще?Под «ссылкой» звучит, как будто вы имеете в виду «Вызов» кода с помощью обработчика событий.Я покажу вам, как вызывать функцию с помощью ServerHandler, запускаемую либо событием ListBox Change с графическим интерфейсом пользователя, либо событием Click Button.

В Google Apps Scrips (GAS) есть три способа сделатьGUI.

В GoogleСайты вы можете добавить большинство HTML напрямую без сценария.Служба пользовательского интерфейса и GUI Builder сгенерируют для вас теги HTML-формы, и поскольку редко есть какая-либо причина для вставки элементов графического интерфейса, если вы не выполняете какой-либо код, который вы, вероятно, захотите начать с их использованием.


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

function doGet(e) {         // use doGet() & UiApp to make a canvas.
    var app = UiApp.createApplication();
    var doEvent = app.createServerHandler('doEvent').setId('doEvent');
    var myList = app.createListBox().setId('myList').setName('myList');
    myList.addItem('one');  // add items, I use single quote strings.
    myList.addItem('two').addItem('three')    // I know it looks weird.
    // Scripts let you do this, by returning self for your convenience.
        .addChangeHandler(                       
            app.createServerHandler('doEvent')
        );
    app.add(myList);                     // Add element to GUI.
    doEvent.addCallbackElement(myList);  // Add to Event Handler.

    app.add(app.createButton('Click Me').setId('myButton')
        .addClickHandler(doEvent));

    return app;
}   // Simple DropDown by Jason K.

function doEvent(e) { // use split() if isMultipleSelect is true
    var app = UiApp.getActiveApplication();
    app.add(app.createLabel(
        'List Value is ' + e.parameter.myList
        + ' from ' + e.parameter.source));
    return app;
}

Что касается устранения неполадок, не забудьте добавить каждый элемент с помощью app.add () и вернуть приложение;в конце doGet и каждой функции-обработчика.

Обработчики выполняют такие функции, как JavaScript onClick () или onChange (), большинство интерфейсов бесполезны без обработчиков.ClientHandler более эффективен, но ServerHandler делает больше, начиная с ServerHandlers, и любые простые функции могут быть преобразованы в ClientHandlers для повышения производительности.Вы можете разделить ваши обработчики или объединить все в одну строку кода, на самом деле это вопрос личных предпочтений, однако вы можете назначить его переменной, если вы планируете использовать его для более чем одного объекта GUI.Возможно, вы захотите посмотреть различные менеджеры компоновки, чтобы сделать приложения более привлекательными, или просто использовать GUI Builder.Также существуют другие функции создания, такие как app.createServerClickHandler (), но я понимаю, что они были бесполезны и теперь устарели, поэтому игнорируйте любые другие ссылки, которые вы найдете таким образом, однако мы по-прежнему используем addChangeHandler () и addClickHandler () для элементов GUIсами по себе.

setName () кажется глупым, нужно только установить имя параметра (я надеюсь, что они его изменят), поэтому сейчас я предлагаю просто установить его так же, как и идентификатор элемента.Я также сделал имя переменной обработчика = его id = имя функции события, чтобы проиллюстрировать, как они все связаны.

0 голосов
/ 14 марта 2012

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

Поскольку он сильно отличается от javascript стандартной страницы, вы должны переосмыслить свою цель с точки зрения того, что позволяет делать сценарии приложений.

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

Существует еще один более примитивный способ «встраивания» ваших команд сценариев в ваш сайт: используйте ссылки. Ссылка, которая запускает скрипт, даже с вашими собственными параметрами, только для запуска команды de, но без какого-либо пользовательского интерфейса. Вы можете создать меню с параметрами, каждый из которых запускает скрипт. Но я не говорю о выпадающем меню.

О скриптах Google Apps Пользовательские интерфейсы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...