我们为Google表格提供Google Aops脚本以与我们的服务器进行交互。
我们需要导出所选数据,而不是打开新的浏览器标签(来自我们的服务器)。
目前我们在侧边栏中有一个按钮,它在GAS中有一个处理程序。此处理程序导出数据(通过urlfetch)并将一个锚(设置为按钮)附加到ui。当用户按下该锚点时,该锚点将从我们的服务器打开一个新选项卡。
有没有办法从GAS处理程序直接打开新选项卡(没有用户操作)?
答案 0 :(得分:1)
不,您无法从处理程序中打开新选项卡。只有当用户自愿点击某个锚点时,才会打开一个选项卡,任何方式都会被Apps脚本团队视为安全问题。
但是,您可以向锚点添加处理程序,并在用户导航到新选项卡时处理点击。我不确定这对你有用。如果您可以控制目标服务器,那么您可以添加一个微调器或其他东西,让用户等待一段时间,直到Apps脚本后端向您发送数据。
这是使用UiApp和我前一段时间写过的library的实现。
function linkAndHandler() {
var app = UI.newApp('Link And Handler Test');
UI.app.add(UI.lockAction(UI.anchor('Google.com', 'https://google.com'), 'linkHandler'));
SpreadsheetApp.getActive().show(UI.finish());
}
function linkHandler() {
UI.app.add(UI.label('handler ran'));
}