如何在嵌入一个谷歌网站的两个谷歌应用程序脚本之间进行通信?

时间:2014-06-10 16:56:49

标签: google-apps-script google-sites

我在Google网站页面中嵌入了两个已发布的网络应用程序(脚本1和脚本2)。与两个脚本进行通信的最简单方法似乎是使用GET参数调用页面:

https://sites.google.com/a/some.place.com/home?tab=1

然后两个嵌入式脚本都可以读取参数:

function doGet(requestInfo) 
{
   var tab = requestInfo.parameters['tab'];
}

但是如果我在脚本1中创建一个链接

var url = SitesApp.getActivePage().getUrl();
<a href='url + "?tab=1"' target="_top"> <a/> 

然后在单击链接后,通过将目标设置为_self,_parent,_top或在新选项卡中弹出_blank页面,将请求加载到第一个脚本的框架中。这不太理想。

如果我使用ScriptApp类:

var url = ScriptApp.getService().getUrl();
href='url + "?tab=1"';
脚本1中的

然后单击链接仅将参数发送到脚本1而不是脚本2。

是否有更好的方法在站点中嵌入的两个脚本之间进行通信?

1 个答案:

答案 0 :(得分:0)

没有切实可行的方法。 你的第一个使用目标的方法会失败,因为浏览器限制不是因为气体,iframe无法锁定目标。 第二种方法只发送到一个脚本。

保持脚本始终运行(使用hmtService间隔或带有重复服务器处理程序的uiService)并继续检查某些共享存储可能但不切实际,但它会消耗您的配额和其他问题。此外,它需要额外的工作来保持每个用户/会话的视图。