gpt4 book ai didi

javascript - Google Apps 脚本 Web 应用程序刷新

转载 作者:行者123 更新时间:2023-12-02 21:28:25 24 4
gpt4 key购买 nike

有人知道使用 Javascript 触发已部署的 Google Appscript Web 应用程序窗口刷新的有效方法吗?

我搜索并测试了 window.location.href = window.location.hrefwindow.reload(true) 等的变体

似乎没有什么效果。

我发现的唯一解决方法是创建一个隐藏的网址链接并使用 .click() 命令导航到同一页面(即刷新),但最近,这会导致问题,特别是因为我现在必须跟踪不同的链接地址。

有没有人有更好的替代方案?

HTML:

<html>

<head>
<title>Finance Mileage Entry</title>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<base target="_top">
<?!= include("page-css");?>
<a id="refreshLink" href="<?= ScriptApp.getService().getUrl() ?>?v=home" style="display:none"></a>

JS:

function refresh(){
var link = document.getElementById("refreshLink")
link.click();
};

最佳答案

为了刷新Web应用程序,您可以使用Window.open(url, windowName) ,像这样:

window.open("https://script.google.com/macros/s/{your-webapp-id}/exec", "_top");

更新:

您还可以通过 ScriptApp.getService().getUrl() 检索脚本 URL ,而不是自己写。为此,您必须从服务器端检索此信息(您无法从客户端访问像 ScriptApp 这样的类)。您必须使用google.script.run从客户端执行服务器端功能:

function retrieveUrl() {
google.script.run.withSuccessHandler(refresh).getUrl();
}

这样,retrieveUrl 将从服务器代码 (.gs) 执行名为 getUrl 的函数,该函数可能如下所示:

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

最后,当getUrl成功返回时,success handler将执行名为 refresh 的客户端函数(其返回值 - 脚本 URL - 将作为参数传递):

function refresh(scriptUrl) {
window.open(scriptUrl, "_top");
}

引用:

关于javascript - Google Apps 脚本 Web 应用程序刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60678107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com