gpt4 book ai didi

javascript - 在链接到谷歌应用程序脚本中的另一个html页面时传递参数

转载 作者:行者123 更新时间:2023-12-03 07:42:56 25 4
gpt4 key购买 nike

首先,这是一个 google-app-script 问题...我似乎无法捕获 HTML 页面中的第二个(或后续) 参数(即本例中的“item”)...我见过很多使用“location.search”和“window.location.search”的示例,但这些似乎都不起作用。是否可能像“location.search”这样简单,这不是正确的用法?

示例

代码.gs

var myParam;
/**
* Get the URL for the Google Apps Script running as a WebApp.
*/

function getScriptUrl() {
var url = ScriptApp.getService().getUrl();
return url;
}
/**
* Get "home page", or a requested page.
* Expects a 'page' parameter in querystring.
*
* @param {event} e Event passed to doGet, with querystring
* @returns {String/html} Html to be served
*/
function doGet(e) {
//Logger.log( Utilities.jsonStringify(e) );
Logger.log(e.parameter.page);
var pgToLoad = e.parameter.page;

if (!e.parameter.page) {
Logger.log('!e.parameter.page')
// When no specific page requested, return "home page"
// return HtmlService.createTemplateFromFile('my1').evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME);
return HtmlService.createTemplateFromFile('my1').evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
Logger.log('there is something for the page');
// else, use page parameter to pick an html file from the script
// return HtmlService.createTemplateFromFile(pgToLoad).evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME);
return HtmlService.createTemplateFromFile(pgToLoad).evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME);
}

我有多个HTML文件,但它们基本上与下面的my1.html相同...my1.html

<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<h1>Source = my1.html</h1>
<p id=myParam>Placeholder</p>
<?var url = getScriptUrl();?><a href='<?=url?>?page=my2&item=1-234'> <input type='button' name='button' value='my2.html'></a>
<?var url = getScriptUrl();?><a href='<?=url?>?page=my3&item=1-345'> <input type='button' name='button' value='my3.html'></a>
</body>
</html>
<script>
function getParam(sname)
{
var params = location.search;
var sval = "";
params = params.split("&");
// split param and value into individual pieces
for (var i=0; i<params.length; i++)
{
temp = params[i].split("=");
if ( temp[0] == sname ) { sval = temp[1]; }
}
return sval;
}
function changeItem() {
var param = getParam("item");
var myItem = "Item:-"+param+"-";
document.getElementById("myParam").innerHTML = myItem;
}
window.onload = changeItem;
</script>

最佳答案

我想我知道你想做什么。看起来您正在从服务器端的 doGet(e) 函数获取搜索字符串参数,然后您尝试在“客户端”从 onload函数?如果是这种情况,我将放弃尝试从客户端获取搜索字符串参数。

您可以将搜索字符串参数存储在浏览器sessionStorage中:

window.sessionStorage.setItem("searchStringOne","Value One");

并检索:

var valueOne = window.sessionStorage.getItem("searchStringOne");

Session Storage Information

关于javascript - 在链接到谷歌应用程序脚本中的另一个html页面时传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35329529/

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