Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Google Sheets中的HTML对话框Google.script.run。无法运行应用程序脚本函数_Javascript_Html_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript Google Sheets中的HTML对话框Google.script.run。无法运行应用程序脚本函数

Javascript Google Sheets中的HTML对话框Google.script.run。无法运行应用程序脚本函数,javascript,html,google-apps-script,google-sheets,Javascript,Html,Google Apps Script,Google Sheets,我正在使用Google Sheets与一位老朋友进行远程游戏(得到游戏发行商的许可) 我试图使用一个带有按钮的HTML对话框来触发一些脚本。我已经通读了文档和Yagisanatode博客中的所有示例。除了google.script.run.addEgg()没有触发code.gs中的addEgg()函数之外,这个东西的每一部分都可以工作 我将包含相关的代码位。在进一步构建之前,我正在努力让一个按钮触发一个脚本 通过单击ObjectOverGrid触发的EggFoodTuck01(),成功启动该对话

我正在使用Google Sheets与一位老朋友进行远程游戏(得到游戏发行商的许可)

我试图使用一个带有按钮的HTML对话框来触发一些脚本。我已经通读了文档和Yagisanatode博客中的所有示例。除了
google.script.run.addEgg()
没有触发code.gs中的
addEgg()
函数之外,这个东西的每一部分都可以工作

我将包含相关的代码位。在进一步构建之前,我正在努力让一个按钮触发一个脚本

通过单击
ObjectOverGrid
触发的
EggFoodTuck01()
,成功启动该对话框

function EggFoodTuck01(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = SpreadsheetApp.setActiveSheet(ss.getSheetByName('Decks'));
  sheet.getRange('CurrentCard').setValue(0); // Record Card Number in 'CurrentCard' Cell (0-14)
  sheet.getRange('CurrentSheet').setValue('Player 1'); // Record Sheet Name in 'CurrentSheet'
  
  // Launch dialog
  var html = HtmlService.createHtmlOutputFromFile("EFTDialog");
  ui.showModalDialog(html, "What would you like to do?");
}
HTML对话框显示正确。单击[+Egg]按钮启动
actionAddEgg()
,因为对话框关闭。无论出于何种原因,
addEgg()
没有在我的应用程序脚本中运行





您缺少
google.script.run
是异步的。这意味着
google.script.host.close()
可能在有效执行
google.script.run.addEgg()调用之前执行

一个选项是使用
和SuccessHandler
调用
google.script.host.close()

您缺少的另一件事是,
google.script.run
将使用用于登录google服务的默认帐户执行。一个快速解决方案是与默认帐户共享电子表格

相关的


    • 您缺少
      google.script.run
      是异步的。这意味着
      google.script.host.close()
      可能在有效执行
      google.script.run.addEgg()调用之前执行

      一个选项是使用
      和SuccessHandler
      调用
      google.script.host.close()

      您缺少的另一件事是,
      google.script.run
      将使用用于登录google服务的默认帐户执行。一个快速解决方案是与默认帐户共享电子表格

      相关的

          • 服务器和客户端脚本函数不应使用相同的函数名(
            addEgg
            )。考虑更改函数名中的一个。< /P>
          • successHandler
            中使用
            close
            ,因为
            google.script.run
            是异步的。这一点在本节中提到

              • 服务器和客户端脚本函数不应使用相同的函数名(
                addEgg
                )。考虑更改函数名中的一个。< /P>
              • successHandler
                中使用
                close
                ,因为
                google.script.run
                是异步的。这一点在本节中提到


              您是否将命名范围定义为
              CurrentCard
              CurrentSheet
              ?您确定相应的getRange返回的是类范围对象而不是
              null
              ?你用的是什么运行时,新的(V8)还是旧的(Rhino)?我想是的。如果我在对话框关闭后从编辑器中手动运行addEgg()函数而不启动它,则该函数将正确执行,并且蛋数将递增。它是V8。您是否将命名范围定义为
              CurrentCard
              CurrentSheet
              ?您确定相应的getRange返回的是类范围对象而不是
              null
              ?你用的是什么运行时,新的(V8)还是旧的(Rhino)?我想是的。如果我在对话框关闭后从编辑器中手动运行addEgg()函数而不启动它,则该函数将正确执行,并且蛋数将递增。这是V8,我试着搞乱它,但我不太明白。我确实理解你所说的可能会发生的事情,以及为什么会发生,所以我会继续读下去。我从actionAddEgg()函数中取出google.script.host.close(),看看addEdd()函数是否可以在没有它的情况下运行。我等了大约20秒,然后手动关闭对话框。没有骰子-(@PatrickLollis您是否尝试过在禁用所有扩展的情况下以匿名模式使用Chrome?使用旧的运行时而不是新的运行时如何?我尝试过,但没有成功。
              函数actionAddEgg(){google.script.run.withSuccessHandler(google.script.host.close).addEgg();}
              该代码有错误。您查看了我在回答中包含的链接吗?它在匿名模式下工作!(带有HTML脚本的版本)我试图搞乱它,但没有真正理解它。我确实理解你所说的可能发生的事情,以及为什么会发生,所以我会继续读下去。我从actionAddEgg()函数中取出google.script.host.close(),看看addEdd()是否函数将在没有它的情况下运行。我等待了大约20秒,然后手动关闭对话框。没有骰子。:-(@PatrickLollis您是否尝试过在匿名模式下使用Chrome并禁用所有扩展?使用旧的运行时而不是新的运行时如何?我尝试过,但没有成功。
              function actionAddEgg(){google.script.run.withSuccessHandler(google.script.host.close).addEgg();}
              该代码有错误。您是否查看了我在回答中包含的链接?它在匿名模式下工作!(HTML中包含脚本的版本)