Javascript 如何在客户端运行服务器端的功能?
所以我已经有好几天了。我试图将数据传递到服务器端脚本中,但当我这样做时,会收到此错误消息。 我试着在youtube上看了几个视频,他们都说了同样的话,你必须使用google.script.run。运行后调用的函数会出现问题。下面是我使用的代码示例Javascript 如何在客户端运行服务器端的功能?,javascript,html,google-apps-script,server-side,client-side,Javascript,Html,Google Apps Script,Server Side,Client Side,所以我已经有好几天了。我试图将数据传递到服务器端脚本中,但当我这样做时,会收到此错误消息。 我试着在youtube上看了几个视频,他们都说了同样的话,你必须使用google.script.run。运行后调用的函数会出现问题。下面是我使用的代码示例 function doGet() { var output = HtmlService.createTemplateFromFile("index"); output.content = "New string
function doGet() {
var output = HtmlService.createTemplateFromFile("index");
output.content = "New string being passed";
return output.evaluate();
}
function doUpload(data){
logger.log(data);
Logger.log("I was called!")
}
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title><?= content ?></title>
</head>
<body>
<h1><?= content ?></h1>
<div id="output"></div>
<form>
<input type="type" name="first" id="first" value="Laurence">
<input type="button" id="subButton" value="submit">
</form>
<script>
var output = document.getElementById("output");
var first = document.getElementById("first");
document.getElementById("subButton").addEventListener("click", function(e){
e.preventDefault();
output.innerHTML = first.value;
var myData ={"first":first.value};
console.log("hello");
google.script.run.doUpload(myData);
})
</script>
</body>
</html>
函数doGet(){
var output=HtmlService.createTemplateFromFile(“索引”);
output.content=“正在传递的新字符串”;
返回输出。evaluate();
}
功能双重加载(数据){
logger.log(数据);
Logger.log(“我被叫了!”)
}
var output=document.getElementById(“输出”);
var first=document.getElementById(“first”);
document.getElementById(“子按钮”).addEventListener(“单击”),函数(e){
e、 预防默认值();
output.innerHTML=first.value;
var myData={“first”:first.value};
console.log(“你好”);
google.script.run.doUpload(myData);
})
正如你所看到的,我正在尝试运行doUpload(数据),但它不会运行。我已经把我所有的账户都注销了,好像我认为这可能是问题所在,但事实并非如此。请帮忙,谢谢 对我来说是这样的:
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title><?= content ?></title>
</head>
<body>
<h1><?= content ?></h1>
<div id="output"></div>
<form>
<input type="type" name="first" id="first" value="Laurence">
<input type="button" id="subButton" value="submit">
</form>
<script>
window.onload=function() {
var output = document.getElementById("output");
var first = document.getElementById("first");
document.getElementById("subButton").addEventListener("click", function(e){
e.preventDefault();
output.innerHTML = first.value;
var myData ={"first":first.value};
console.log("hello");
google.script.run.doUpload(myData);
});
}
</script>
</body>
</html>
window.onload=function(){
var output=document.getElementById(“输出”);
var first=document.getElementById(“first”);
document.getElementById(“子按钮”).addEventListener(“单击”),函数(e){
e、 预防默认值();
output.innerHTML=first.value;
var myData={“first”:first.value};
console.log(“你好”);
google.script.run.doUpload(myData);
});
}
检查您的视图/执行情况我的工作方式如下:
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title><?= content ?></title>
</head>
<body>
<h1><?= content ?></h1>
<div id="output"></div>
<form>
<input type="type" name="first" id="first" value="Laurence">
<input type="button" id="subButton" value="submit">
</form>
<script>
window.onload=function() {
var output = document.getElementById("output");
var first = document.getElementById("first");
document.getElementById("subButton").addEventListener("click", function(e){
e.preventDefault();
output.innerHTML = first.value;
var myData ={"first":first.value};
console.log("hello");
google.script.run.doUpload(myData);
});
}
</script>
</body>
</html>
window.onload=function(){
var output=document.getElementById(“输出”);
var first=document.getElementById(“first”);
document.getElementById(“子按钮”).addEventListener(“单击”),函数(e){
e、 预防默认值();
output.innerHTML=first.value;
var myData={“first”:first.value};
console.log(“你好”);
google.script.run.doUpload(myData);
});
}
检查您的视图/执行情况也许您应该在加载html后添加事件侦听器,就像在window.onload中一样。如果您使用客户端的发送和接收来自服务器的信息,它可能会起作用。@StackSlave我不同意
google.script.run.doUpload(myData)代码>应该这样做。哦,我假设你的html是在一个网络应用程序中。是这样吗?如果该方法从服务器发送和接收数据,则使用XMLHttpRequest
。一般问题得到一般答案。也许你应该在html加载后添加事件侦听器,就像在window.onload中一样。如果您使用客户端的发送和接收来自服务器的信息,它可能会起作用。@StackSlave我不同意google.script.run.doUpload(myData)代码>应该这样做。哦,我假设你的html是在一个网络应用程序中。是这样吗?如果该方法从服务器发送和接收数据,则使用XMLHttpRequest
。一般性问题得到一般性的答案。但是你有日志记录吗?是的。在查看/执行2020年12月21日,下午5:12:10信息{first=Laurence}2020年12月21日,下午5:12:10信息中查看它们我被呼叫了代码>我没有得到日志。我收到一条消息说编辑器上没有正在执行的函数。(我已经复制粘贴了你的代码)在视图/执行中查看它们是的,这就是我正在做的。我不知道为什么,但是现在我在日志上得到了空[20-12-21 18:11:14:243 CST]空[20-12-21 18:11:14:245 CST]我被呼叫了!但是你要记录日志吗?是的。在查看/执行2020年12月21日,下午5:12:10信息{first=Laurence}2020年12月21日,下午5:12:10信息中查看它们我被呼叫了代码>我没有得到日志。我收到一条消息说编辑器上没有正在执行的函数。(我已经复制粘贴了你的代码)在视图/执行中查看它们是的,这就是我正在做的。我不知道为什么,但是现在我在日志上得到了空[20-12-21 18:11:14:243 CST]空[20-12-21 18:11:14:245 CST]我被呼叫了!