我发现了' Google电子表格中的补充工具栏功能。非常整洁。
我有不同的标签,补充工具栏充当帮助功能。如果我选择补充工具栏中的下一步,我可以打开包含下一步的选项卡。
现在我有点卡住了。当用户选择其他选项卡时,我喜欢使用相应的信息填充补充工具栏。
虽然我知道如何填写信息,但我正在寻找触发器'运行该功能。
所以我的问题归结为:如何捕获更改标签事件?
答案 0 :(得分:3)
使用How to poll a Google Doc from an add-on中演示的轮询技巧。与基于时间的触发器不同,这依赖于侧边栏html中的客户端延迟循环来调用Google服务器上的脚本。
以下是如何修改该问题的示例。
Code.gs 中的DocumentApp
替换为SpreadsheetApp
/**
* Gets the name of the current tab
*
* @return {string} The selected tab name.
*/
function getActiveTab() {
return SpreadsheetApp.getActiveSheet().getName();
}
HTML中的poll()
函数替换为此函数。<div id="tab-name">loading...</div>
...
/**
* Poll server-side function(s) at the given interval.
*
* @param {Number} interval (optional) Time in ms between polls.
* Default is 2s (2000ms)
*/
function poll(interval){
interval = interval || 2000;
setTimeout(function(){
google.script.run
.withSuccessHandler(
function(tabName) {
// DEMO - just display name of selected tab
$('#tab-name').text(tabName);
//Setup the next poll recursively
poll(interval);
})
.withFailureHandler(
function(msg, element) {
showError(msg, $('#button-bar'));
element.disabled = false;
})
.getActiveTab();
}, interval);
};
答案 1 :(得分:0)
为了让它工作,我需要在HTML的开头添加以下内容
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<script>
$(function() {
// Start polling for updates
poll(1000);
});
</script>