首页 > 解决方案 > 使用 Javascript 检索 AppScript 的 URL

问题描述

我正在尝试使用新参数重新加载当前页面,但我无法检索网页的正确 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?

提前致谢!

标签: javascripthtmlurlgoogle-apps-script

解决方案


问题:

具有不同来源的 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);

参考:


推荐阅读