我正在尝试为电子表格创建用户界面。不幸的是,在使用UiService时,我似乎无法在任何组件上设置ID。我可以验证是否未使用Chrome开发人员工具设置ID。它可能相关,也可能不相关,但我在Google Apps for Domain环境中使用Drive in。这是代码:
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');
}
答案 0 :(得分:0)
我相信你在checkLength()和addTweet()函数中缺少return app;
。