如何使用Google Apps脚本打开网络浏览器?

时间:2013-08-09 16:37:55

标签: google-apps-script

我已经在google驱动器中创建了一个电子表格,并且我使用谷歌演示文稿整理了一个教程演示文稿,向用户演示如何使用电子表格以及为什么它比我们以前的方式更好。

我想要的是在电子表格打开时显示的消息框,询问该人是否已观看过教程演示。如果用户单击否我想在浏览器中打开新页面以向他们显示我已发布的演示文稿,或在自定义UI中显示演示文稿。

我搜索了几个小时,但无法弄明白。这可能吗?谢谢您的帮助!

我是论坛的新手,所以如果我发错了,请告诉我。谢谢!

2 个答案:

答案 0 :(得分:2)

这样的事情很好。

我使用了一个假按钮来保持“外观和感觉”与另一个按钮一致,我只是添加了隐藏在其上的链接; - )

function alertLink() {
  var doc = SpreadsheetApp.getActiveSpreadsheet();
  var app = UiApp.createApplication().setTitle('Message').setHeight('100').setWidth('400');
  var panel = app.createVerticalPanel().add(app.createHTML('Did you see my beautiful <b>Tutorial</b> ?'));
  var grid = app.createGrid(1,2).setWidth('400');
  var closeHandler = app.createServerHandler('close');
  var b1 = app.createButton("NO and I'd like to").setTitle('go to the tutorial in a new tab');
  var b2 = app.createButton("YES and I don't want to see it again",closeHandler).setTitle('close this window');
  var link = app.createAnchor('XXXXXXXXXX','http://www.google.com').setStyleAttributes({'zIndex':'1' , 'position':'fixed' , 'top':'25' , 'left':'20', 'color':'transparent' }).setTitle('go to the tutorial in a new tab');
  var G1 = app.createVerticalPanel().add(b1).add(link);
  grid.setWidget(0,0,G1).setWidget(0,1,b2);
  app.add(panel).add(grid)
  doc.show(app)
}

function close(){
  return UiApp.getActiveApplication().close();
}

如果您希望在电子表格打开时自动执行,请使用onOpen触发器。 (或将主要功能重命名为onOpen()

以下是它的样子:

enter image description here

答案 1 :(得分:0)

对于onOpen触发器,它提供了一个提供打开URL选项的对话框,提示用户肯定是一个更好的用户体验,而不是自动打开URl。有关如何执行此操作,请参阅serge's answer here(与此线程中的答案中的弃用代码相比,它更新)。

但是对于其他触发器(例如菜单项单击)check out my answer here来自动打开URL。