Google应用脚本获取用户输入,没有长度限制

时间:2017-08-09 20:48:27

标签: google-apps-script

我想使用以下任意一种方式获取用户输入(HTML):

producer.send()

var ui = SpreadsheetApp.getUi();
var response = ui.prompt('Paste HTML below');

这些适用于小输入,但是当对感兴趣的页面复制整个HTML时会发生错误(在每种情况下)。无法捕获此错误,只会导致脚本崩溃。

你知道为什么会这样吗?我在文档中找不到任何提及输入大小限制的内容。

以不同的方式做任何经验?

编辑:根据评论中的建议,我尝试了另一种方法(如下)。传递大输入时,这也会失败(没有错误消息)。

首先我设置了var input = Browser.inputBox('Paste HTML below', Browser.Buttons.OK_CANCEL);

Page.html

然后在档案<!DOCTYPE html> <html> <head> <base target="_top"> </head> <body> Paste Sitemap Content Below <textarea id="user-input-box" rows="4" cols="50"></textarea> <script> function logToConsole() { var userInput = document.getElementById("user-input-box").value; google.script.run.doSomething(userInput); } </script> <input type="button" value="Close" onclick="logToConsole();google.script.host.close();" /> </body> </html>

Code.gs

1 个答案:

答案 0 :(得分:1)

我只是遇到了同样的问题,无法记录错误。就您而言,在您的情况下,您要先调用logToConsole()函数,然后在使用google.script.host.close()关闭对话框后立即调用

google.script.host.close()是问题所在。由于某些原因,它可能会取消脚本执行-通常在您发回大量数据时会发生这种情况。诀窍是,在调用脚本(然后调用google.script.host.close())时使用successHandler。这样,从对话框进行的数据传输将正确完成,并且当您调用withSuccessHandler()时,该回调将关闭对话框。尝试对您的代码进行此修订:

<script>
    function logToConsole() {
        var userInput = document.getElementById("user-input-box").value;
        google.script.run.withSuccessHandler(closeDialog).doSomething(userInput);
    }

    function closeDialog() {
        google.script.host.close();
    }
</script>
<input type="button" value="Close" onclick="logToConsole()" />