在Apps脚本中获取完整的浏览器URL

时间:2018-12-10 00:17:28

标签: google-apps-script

我希望在通过HTMLService显示Web应用程序时在Apps脚本中获取当前浏览器窗口的完整URL。

  1. 当我尝试此操作时,它不起作用,因为Apps脚本已被沙箱化,并且我得到了某种形式的另一个服务器URL

    window.location.href 
    


  2. 尝试此操作时,我只能获取哈希或参数,而不能获取完整的网址

    google.script.url.getLocation(function(location) {
      console.log(location.parameters);
      console.log(location.hash);
    });
    

    来源:https://developers.google.com/apps-script/guides/html/reference/url#methods


上述目的: 我希望人们在发布的Web应用程序中单击一个按钮以删除浏览器工具栏。但是,浏览器工具栏在当前浏览器窗口中不可移动。因此,我想获取Web应用程序URL并将其作为当前Web应用程序的新窗口放入window.open()中,因为可以通过这种方式删除浏览器工具栏。但是我似乎无法获取当前网址。

有什么想法可以实现这一目标吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

我也不知道您所说的开发人员模式是什么意思,但是我猜测这是问题的答案。如果没有,请告诉我,我将其删除。

在客户端,您可以使用Javascript:

<script>
  function getUrl(){
    google.script.run
    .withSuccessHandler(function(url){
       document.getElementById('mydiv').innerHTML='<p>' + url + '</p>';
     })
    .getScriptUrl()
</script>
<body>
  <div id="mydiv"></div>
</body>

在Google脚本中:

function getScriptURL() {
  return ScriptApp.getService().getUrl();
}

答案 1 :(得分:0)

我建议为当前脚本URL使用以下代码:

function getScriptURL() {
  // dev URI
  'https://script.google.com/macros/d/' + ScriptApp.getScriptId() + '/edit';
}