2013-01-03 262 views
4

在使用GAS HtmlService的Web应用程序中,我需要获取当前页面的url以在模板中构建新链接。获取当前页面url

网络应用程序将在谷歌网站页面(气体作为小工具)运行,但也独立位置

我想“变种PAGEURL = document.location.href”然后像遵循HTML模板中使用PAGEURL。我知道这是错的,但我迷路了,对不起。

<a href="<?= pageUrl + "?item=xyz" ?>" >Item xyz link</a> 

感谢,福斯托

回答

4

您可以通过ScriptApp得到一个Web应用程序的网址:

<a href="<?= ScriptApp.getService().getUrl() + "?item=xyz" ?>" >Item xyz link</a> 

并且你可以通过SitesApp得到网站的网址:

SitesApp.getActivePage().getUrl() 

尽管我不认为这对于你所描述的内容实际上是有用的,因为你不能向它添加有用的查询参数。脚本在iframe中运行,因此虽然可以在客户端上使用document.location,但它无论如何不会对您有所帮助。该URL已被清理,并且服务标识被删除。

+0

有没有办法让实际的URL在这两种情况下,像使用document.location.href? –

+1

没有。该脚本在指向script.google.com/blank的iframe中运行,因此您得到的“实际”网址就是这样。 –

+0

感谢Corey的支持,我将不得不寻找另一种方法 –

0

你能买得起jQuery路线吗?

$(document).ready(function() { 

var currentURL = window.location; 

$('#myLink').prop('href', currentURL); 


}); 

则...

<a id="myLink" href="">Link to somewhere</a> 
+0

这是行不通的...... window.location目前指向script.google.com/blank,行为不保证这种方式(但我几乎可以保证它永远不会出现在浏览器栏中的网址)。这里有一些iframe可以补充Caja的功能,并且无法读取window.location,而没有通过ScriptApp授予的明确权限是有意的。 –

+0

我宁愿不使用jQuery,但是我尝试了类似的东西,但它不起作用 –