使用Javascript检索AppScript的URL
我正在尝试使用新参数重新加载当前页面,但无法检索网页的正确URL。我得到的是另一个URL,而不是触发web应用程序的URL使用Javascript检索AppScript的URL,javascript,html,url,google-apps-script,Javascript,Html,Url,Google Apps Script,我正在尝试使用新参数重新加载当前页面,但无法检索网页的正确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
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
提前谢谢 问题:
具有不同原点的iframe无法读取父帧/顶帧位置的href属性,该属性为只读。所以,你不能
解决方案:
但是,您可以从服务器端传递url
服务器端:
客户端:
参考资料:
https://script.google.com/a/user/macros/s/A...ljhGC/dev
,OP可能希望以开发者模式访问Web应用程序。使用getUrl()
时,添加信息以反映最新脚本如何?@Tanaike[ID]/dev
和[ID]/exec
的ID完全不同。是否可以访问实际的dev
url?谢谢您的回复。对<代码>{id}ofhttps://script.google.com/a/可以检索{domain}/macros/s/{id}/dev
。在本例中,它使用应用程序脚本API中的projects.deployments.list方法。对于该方法的响应值,属性deployments
的第一个索引中的deploymentId
的值就是它。你可以在确认。但是,我不确定OP是否真的需要这个。对此我深表歉意。@Tanaike啊,是的,api。op可能不需要开发url。此外,只发布新应用程序并获取exec url要容易得多。甚至只是复制/粘贴dev url(我假设dev url{id}不会随着源代码的更改而更改),虽然我不确定OP的情况,但我认为从https://script.google.com/a/user/macros/s/A...ljhGC/dev
,OP可能希望以开发者模式访问Web应用程序。使用getUrl()
时,添加信息以反映最新脚本如何?@Tanaike[ID]/dev
和[ID]/exec
的ID完全不同。是否可以访问实际的dev
url?谢谢您的回复。对<代码>{id}ofhttps://script.google.com/a/可以检索{domain}/macros/s/{id}/dev
。在本例中,它使用应用程序脚本API中的projects.deployments.list方法。对于该方法的响应值,属性deployments
的第一个索引中的deploymentId
的值就是它。你可以在确认。但是,我不确定OP是否真的需要这个。对此我深表歉意。@Tanaike啊,是的,api。op可能不需要开发url。此外,只发布新应用程序并获取exec url要容易得多。甚至只是复制/粘贴dev url(我假设dev url{id}不会随着源代码的更改而更改)
function getTopUrl(){
return ScriptApp.getService().getUrl();
}
var topUrl;
function getTop(){
google.script.run.withSuccessHandler((url)=>{topUrl=url;}).getTopUrl();
}
window.addEventListener('load', getTop);