Google 表格中的侧边栏功能:单击按钮可在侧边栏中打开新的“页面”
Sidebar functionality in google sheets: clicking a button to open a new 'page' within the sidebar
我正在为我公司的设备构建一个调度工具。我正在谷歌工作表中运行一个带有侧边栏的脚本。我想让用户选择一个按钮(即预订),该按钮会转到侧边栏中的另一个页面,我可以在其中接受用户输入。我不确定如何使用我拥有的当前代码触发此事件。我有一个HTML代码文件和一个谷歌脚本文件。
有人可以根据下面的代码在这里帮助我或引导我朝着正确的方向前进吗?
HTML/CSS 代码:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons1.css">
<!-- The CSS package above applies Google styling to buttons and other elements. -->
</head>
<body>
<center>
<div class = "sidebar header-logo">
<img alt="Add-on logo" class="logo" src="img.png" width="250" height="35.75">
</div>
</center>
<form>
<style>
.button1 {
position: absolute;
transition: .5s ease;
top: 50%;
left: 5%;
}
.button2 {
position: absolute;
top: 0%;
left: 115%;
}
.button3 {
position: absolute;
top: 115%;
left: 0%;
}
.button4 {
position: absolute;
top: 0%;
left: -100%;
}
.text {
position: absolute;
top: 150px;
color: #000000;
font-size:12pt;
}
</style>
<div class = "text" align = "center">
<center>
<b>What would you like to do today?</b>
</center>
</div>
<div class="button1" id="button-bar">
<form action="http://google.com">
<button class="blue" id="run-translation">Make a Reservation</button>
<div class="button2" id="button-bar">
<form action="http://google.com">
<button class="blue" id="run-translation">Cancel Reservation</button>
<div class="button3" id="button-bar">
<form action="http://google.com">
<button class="blue" id="run-translation">Request Maintenance</button>
<div class="button4" id="button-bar">
<form action="http://google.com">
<button class="blue" id="run-translation">Report Site Bug</button>
</form>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<script>
window.writeData = function() {
var formObj = document.getElementById('myForm');
google.script.run.myServerFunctionName(formObj);
};
$(function() {
$('#run-translation').click(runTranslation);
$('#insert-text').click(insertText);
google.script.run.withSuccessHandler(loadPreferences)
.withFailureHandler(showError).getPreferences();
});
function runTranslation() {
var win = window.open("http://google.com", '_blank');
win.focus();
}
</script>
</body>
</html>
谷歌企业应用套件代码:
function onOpen(){
//
var ui = SpreadsheetApp.getUi();
ui.createMenu('Scheduling Controls')
.addItem('Show sidebar', 'showSidebar')
.addToUi();
}
function showSidebar() {
doGet();
var html = HtmlService.createHtmlOutputFromFile('Sidebar')
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setTitle('Scheduling Tool')
.setWidth(300);
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.showSidebar(html);
}
function doGet() {
return HtmlService
.createTemplateFromFile('Sidebar')
.evaluate()
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
好的,首先,我假设这个应用程序是一个附加组件,因为它在你的电子表格中。这意味着你不需要那个讨厌的doGet()。doGet 仅在独立脚本上是必需的。
幸运的是,您在 GAS 附加组件中要实现的目标非常容易。您需要做的就是对 .gs 调用 .run() 函数来处理它。所以,你的HTML应该看起来像这样。
<button onclick='doMyStuff()'>button</button>
<script>
function doMyStuff() {
google.script.run.setUpNewSidebar();
}
</script>
所以,现在在 .gs:
function setUpNewSidebar() {
var ui = HtmlService.createHtmlOutputFromFile('newSidebar')
.setTitle('Report Builder')
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
SpreadsheetApp.getUi().showSidebar(ui);
}
如果这是一个独立的脚本,请认真考虑将其更改为附加组件。它们更易于使用,并且很可能会更好地工作。
相关文章:
- 当侧边栏很长时,滚动/固定侧边栏会被切断
- 向下滚动页面时在侧边栏中显示部分标题(也许使用 BS scrollspy?
- 如何使用 php 包含侧边栏,并在侧边栏中为当前页面使用不同的颜色
- 使用Javascript添加侧边栏并更改某些HTML页面上的填充
- 根据页面突出显示侧边栏中的链接
- 有没有办法在 Firefox 侧边栏中加载页面时应用不同的 CSS
- Chrome扩展程序将侧边栏注入页面
- 如何在滚动时显示侧边栏,并在页面顶部隐藏侧边栏
- 如何在页面上向上或向下移动侧边栏
- 如何使侧边栏隐藏时,页面加载在引导
- 如何将选中的元素从devTools页面发送到chrome侧边栏页面
- 在打开侧边栏之前禁用滚动到页面顶部的功能
- 删除侧边栏商店页面woocommerce
- 当用户刷新页面或导航到不同的页面时,侧边栏上有不同的广告
- 引导导航条在单击侧边栏导航列表后隐藏页面的部分
- 重新加载Chrome DevTools扩展侧边栏在页面更改
- HTML / CSS:侧边栏出现在页面底部而不是右侧
- Google 表格中的侧边栏功能:单击按钮可在侧边栏中打开新的“页面”
- XUL-在主浏览器窗口中加载新页面的侧边栏按钮
- 从firefox侧边栏监视所选选项卡中的页面加载事件