gpt4 book ai didi

javascript - 如何使用 Google 电子表格从用户那里获取文本?

转载 作者:行者123 更新时间:2023-11-28 07:21:39 24 4
gpt4 key购买 nike

我正在尝试为 Google 电子表格创建一个自动邮件系统。我想创建一个菜单按钮,用户可以按下该按钮并获得一个带有大(段落大小)文本框的对话框,用于在其中写入消息。

我的问题是创建正确的实例以便能够传递用户文本输入:

  • 我尝试使用 Browser.inputBox("title"),但这只会生成一个 1 行文本框。
  • 我尝试使用 SpreadsheetApp.getUi().prompt 方法,但这又只生成一个 1 行文本框。

关于我应该使用什么类/方法来获取用户的短信有什么想法吗?

编辑这是另一种方法,这次使用 ShoeModalDialog() 和 html 代码。我认为它非常接近,但尚未工作。想法?

function showDialog() {
var html = HtmlService.createHtmlOutputFromFile('testHTML')
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setWidth(600)
.setHeight(400);
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.showModalDialog(html, 'Dialog title');
}


function jsGetText(text) {
//do something with the string object
}
<script>
function mySuccessFunction(textBox) {
jsGetText(textBox.value)
}
</script>


<form method="post" >
<textarea name="textBox" id="textBox" cols="60" rows="20" class="html-text-box"></textarea><br>
<input type="submit" value="send" class="html-text-box" onclick="google.script.run.withSuccessHandler(mySuccessFunction).withUserObject(document.getElementById('textBox')); google.script.host.close()">
<input type="reset" value="cancel" class="html-text-box" onclick="google.script.host.close()">
</form>

最佳答案

showDialog 函数看起来不错。不要将所有代码放入 onClick() 属性中。从表单标记中删除 method="post"。在这种情况下您不想发送 POST 请求。使用 Logger.log() 语句和 console.log() 语句,并不断检查执行日志是否有服务器错误。

代码.gs

function jsGetText(text) {
Logger.log('text: ' + text);
Logger.log('text.length: ' + text.length);

for (var key in text) {
Logger.log('key: ' + key);
Logger.log('value: ' + text[key]);

};


var objFieldOne = text['textBox'];
Logger.log('objFieldOne: ' + objFieldOne);

//do something with the string object

return objFieldOne;
};

testHTML.html

<script>
function fncGetUserTxt() {

var objUsrInput = document.getElementById('idInputForm');

/* for (var key in objUsrInput) {
console.log('key: ' + key);
console.log('value: ' + objUsrInput[key]);

};
*/
google.script.run
.withSuccessHandler(mySuccessFunction)
.jsGetText(objUsrInput);

//google.script.host.close()
};

function mySuccessFunction(textBox) {
alert('Success! : ' + textBox);
};
</script>


<form id='idInputForm'>
<textarea name="textBox" id="textBox" cols="60" rows="20" class="html-text-box"></textarea><br>
<input type="submit" value="send" class="html-text-box" onmouseup='fncGetUserTxt()'>
<input type="reset" value="cancel" class="html-text-box" onclick="google.script.host.close()">
</form>

关于javascript - 如何使用 Google 电子表格从用户那里获取文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30242433/

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