【问题标题】:Retrieve URL of AppScript using Javascript使用 Javascript 检索 AppScript 的 URL
【发布时间】:2019-11-30 13:29:19
【问题描述】:

我正在尝试使用新参数重新加载当前页面,但我无法检索网页的正确 URL。我得到了一个备用 URL,而不是触发 Web 应用程序的 URL

https://script.google.com/a/user/macros/s/A...ljhGC/dev?action=menu&id=1

单击按钮时,我希望更改操作参数的值并将页面重新加载为

https://script.google.com/a/user/macros/s/A...ljhGC/dev?action=checkout&id=1

这是我在 HTML 文件中的 javascript

console.log(document.url);

      var url = new URL(window.location.href);
      var query_string = url.search;
      var search_params = new URLSearchParams(query_string); 
      search_params.set('action', 'checkout');
       url.search = search_params.toString();
       var new_url = url.toString();
       window.location.replace(new_url);
       console.log(new_url);
    }

这是被记录的 URL

https://n-ikwx...khq-1lu-script.googleusercontent.com/userCodeAppPanel?action=checkout

如何检索地址栏中的实际 URL?

提前致谢!

【问题讨论】:

    标签: javascript html url google-apps-script


    【解决方案1】:

    问题:

    不同来源的 iframe 无法读取父/顶级框架的位置的 href 属性,该属性是只写的。所以,你不能。

    解决办法:

    但是,您可以从服务器端传递 url。

    服务器端:

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

    客户端:

    var topUrl;
    function getTop(){
      google.script.run.withSuccessHandler((url)=>{topUrl=url;}).getTopUrl();
    }
    window.addEventListener('load', getTop);
    

    参考资料:

    【讨论】:

    • 虽然我不确定OP的情况,但我认为从https://script.google.com/a/user/macros/s/A...ljhGC/dev的URL,OP可能想以开发者模式访问Web Apps。使用getUrl()时,添加反映最新脚本的信息如何?
    • @Tanaike [ID]/dev[ID]/exec 的 id 完全不同。是否可以访问实际的dev url?
    • 感谢您的回复。是的。可以检索到https://script.google.com/a/{domain}/macros/s/{id}/dev{id}。在这种情况下,它使用 Apps Script API 中的 projects.deployments.list 方法。对于方法的响应值,属性deployments 的第一个索引中的deploymentId 的值就是它。您可以通过Try this API确认。
    • 但是,我不确定 OP 是否真的需要这个。对此我深表歉意。
    • @Tanaike 啊是的 api。可能 op 不需要 dev url。此外,发布新应用程序并获取 exec url 更容易。或者甚至只是复制/粘贴开发网址(我假设开发网址 {id} 不会随着源代码的更改而改变)
    猜你喜欢
    • 2019-01-15
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    相关资源
    最近更新 更多