Я пытаюсь создать пользовательский интерфейс для электронной таблицы. К сожалению, я не могу получить идентификатор для установки на любом компоненте при использовании UiService. Я могу проверить, что идентификатор не установлен с помощью инструментов разработчика Chrome. Это может быть или не быть релевантным, но я использую Drive in в среде Google Apps для домена. Вот код:Google App Script - setId on Component не работает
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('Tweet Menu')
.addItem('Tweet Sidebar', 'tweetSidebar')
.addToUi();
};
function tweetSidebar() {
var ui = SpreadsheetApp.getUi();
var app = UiApp.createApplication();
app.setTitle('Tweet Sidebar');
var panel = app.createVerticalPanel();
panel.setId('twitterPanel');
panel.setStyleAttribute('margin', '5px');
var textArea = app.createTextArea();
textArea.setId('12345');
textArea.setName('tweetText');
textArea.setWidth('290px').setHeight('175px');
var keyPressHandler = app.createServerHandler('checkLength');
keyPressHandler.addCallbackElement(textArea);
textArea.addKeyPressHandler(keyPressHandler)
var button = app.createButton('Add Tweet');
button.setId('addTweet');
var handler = app.createServerHandler('addTweet');
handler.addCallbackElement(textArea);
button.addClickHandler(handler);
panel.add(textArea);
panel.add(button);
app.add(panel);
SpreadsheetApp.getUi().showSidebar(app);
}
function addTweet(e) {
var app = UiApp.getActiveApplication();
var textAreaValue = e.parameter.tweetText;
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var lastRow = sheet.getLastRow();
var previousBufferID = sheet.getRange('b' + lastRow);
var newBufferID = previousBufferID.getValue() + 1;
var lastTweetCell = sheet.getRange('a' + (lastRow + 1));
var lastBufferID = sheet.getRange('b' + (lastRow + 1));
lastTweetCell.setValue(textAreaValue);
lastBufferID.setValue(newBufferID);
app.getElementById('12345').setValue('');
}
function checkLength(e) {
var app = UiApp.getActiveApplication();
var textAreaValue = e.parameter.tweetText;
var len = textAreaValue.length;
app.getElementById('12345');
}
Я добавил, что, но, похоже, он не изменил поведение. С тех пор я портировал приложение с боковой панели таблицы в веб-приложение Google Apps Script. Код возвращает правильный элемент, когда я вызываю app.getElementById, но он по-прежнему не добавляет атрибут «id» к любому из элементов вывода HTML. –