Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.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 gs函数的定义是当您从html代码调用函数时?_Javascript_Google Apps Script - Fatal编程技术网

Javascript gs函数的定义是当您从html代码调用函数时?

Javascript gs函数的定义是当您从html代码调用函数时?,javascript,google-apps-script,Javascript,Google Apps Script,我正在使用gs文件和html创建GasWeb应用程序,包括脚本标记和jQuery。 当我执行下面的程序时① 或②, 然后③ 显示在浏览器上的每个①, ②. ①↓ ②↓ 下面是与一起使用的常见html文件① 及② 问题:gs函数的定义是当您从html代码调用函数时?(我可以从html在gs文件中使用closer吗? 多谢各位 附言① 我希望浏览器上显示的“get=”和“count=”值相同。在gs文件中使用JavaScript的closer函数(换句话说,使用我在中编写的“closer”name

我正在使用gs文件和html创建GasWeb应用程序,包括脚本标记和jQuery。 当我执行下面的程序时① 或②, 然后③ 显示在浏览器上的每个①, ②.

①↓ ②↓ 下面是与一起使用的常见html文件① 及② 问题:gs函数的定义是当您从html代码调用函数时?(我可以从html在gs文件中使用closer吗?

多谢各位


附言①

我希望浏览器上显示的“get=”和“count=”值相同。在gs文件中使用JavaScript的closer函数(换句话说,使用我在中编写的“closer”name函数)① 及②)

  • 您希望检索以下结果

    get = 4, count = 4
    
    get = 3, count = 3
    
    get = 2, count = 2
    
    get = 1, count = 1
    
如果我的理解是正确的,那么这次修改如何?请把它看作是几种可能的答案之一

修改点:
  • 关于
    closer()

    • 由于没有参数,无法接收该值
    • 只有当
      plusOr
      1
      时,
      ++b
      才会运行
  • 关于
    success()

    • vv
      的初始值为
      1
      。因此,当反映上述修改时,在第一个循环中,
      success(get)
      get
      2
    • if(count<4){aa(1);}
      的if语句中,始终发送
      1
当上述修改反映到脚本中时,它将变成如下所示

修改脚本: 对于谷歌应用程序脚本,请修改如下

对于模式1: 发件人: 致: 对于模式2: 发件人: 致: 对于HTML,请在函数
success()
中修改脚本,如下所示

发件人: HTML端:

var计数=0; 函数成功(get){ ++计数; document.getElementById(“wi”).insertAdjacentHTML(“afterend”,“p>get=“+get+”,count=“+count+”

”); 如果(计数<4){ aa(1); }否则{ google.script.run.clearProperty(); } } aa(1); 功能aa(vv){ google.script.run.withSuccessHandler(成功).closer(vv); }
参考资料:
    • 在您的情况下,我认为缓存服务也可以使用
      • 您希望检索以下结果

        get = 4, count = 4
        
        get = 3, count = 3
        
        get = 2, count = 2
        
        get = 1, count = 1
        
      如果我的理解是正确的,那么这次修改如何?请把它看作是几种可能的答案之一

      修改点:
      • 关于
        closer()

        • 由于没有参数,无法接收该值
        • 只有当
          plusOr
          1
          时,
          ++b
          才会运行
      • 关于
        success()

        • vv
          的初始值为
          1
          。因此,当反映上述修改时,在第一个循环中,
          success(get)
          get
          2
        • if(count<4){aa(1);}
          的if语句中,始终发送
          1
      当上述修改反映到脚本中时,它将变成如下所示

      修改脚本: 对于谷歌应用程序脚本,请修改如下

      对于模式1: 发件人: 致: 对于模式2: 发件人: 致: 对于HTML,请在函数
      success()
      中修改脚本,如下所示

      发件人: HTML端:
      
      

      var计数=0; 函数成功(get){ ++计数; document.getElementById(“wi”).insertAdjacentHTML(“afterend”,“p>get=“+get+”,count=“+count+”

      ”); 如果(计数<4){ aa(1); }否则{ google.script.run.clearProperty(); } } aa(1); 功能aa(vv){ google.script.run.withSuccessHandler(成功).closer(vv); }
      参考资料:
        • 在您的情况下,我认为缓存服务也可以使用

      是否希望
      get
      count
      值相同?
      get=4,count=4
      get=3,count=3
      ?是否希望
      get
      count
      值相同?
      get=4,count=4,
      get=3,count=3
      @容易いtayasui如果这个答案不是你想要的结果,请告诉我。我想修改它。非常感谢你的回答。为什么我们应该在“模式1:”中给外部函数(closerRe)加参数是因为如果我们想执行gs文件的程序,我们只能调用gs文件中的函数单元@容易いtayasui感谢您的回复。很遗憾,我无法理解您的回复。我可以问一下您当前的问题吗@容易いtayasui感谢您的回复。作为在Google Apps脚本端和HTML端之间使用值的一种方法,我认为还可以使用PropertiesService和CacheService。当使用PropertiesService时,该值可以保存到GAS项目中,您可以从PropertiesService获取值。我在回答中添加了示例脚本。Cou请确认一下好吗?如果这个示例可以帮助您了解Google应用程序脚本端和HTML端的脚本,我很高兴。非常感谢您给我提供有用的信息。它们将帮助我制作好的应用程序@容易いtayasui如果这个答案不是你想要的结果,请告诉我。我想修改它。非常感谢你的回答。为什么我们应该在“模式1:”中给外部函数(closerRe)加参数是因为如果我们想执行gs文件的程序,我们只能调用gs文件中的函数单元@容易いtayasui感谢您的回复。很遗憾,我无法理解您的回复。我可以问一下您当前的问题吗@容易いtayasui感谢您的回复。作为在Google应用程序脚本端和HTML端之间使用值的一种方法,我认为PropertiesServic
      <!DOCTYPE html>
      <html>
        <head>
          <base target="_top">
        </head>
        <body>
          <p id="wi"></p>
          <script>
          var count = 0;
      
          function success(get){
            ++count;
            document.getElementById("wi").insertAdjacentHTML("afterend","<p>get = " + get + ", count = " + count + "</p>");
            if (count < 4){
              aa(1);
            }      
          }
      
          aa(1);
      
          function aa(vv){
            google.script.run.withSuccessHandler(success).closer(vv);
          }
          </script>
        </body>
      </html>
      
      get = 1, count = 4
      
      get = 1, count = 3
      
      get = 1, count = 2
      
      get = 1, count = 1
      
      get = 4, count = 4
      
      get = 3, count = 3
      
      get = 2, count = 2
      
      get = 1, count = 1
      
      var closerRe = function (){
          var b = 0;
          return function(plusOr){
              Logger.log("plusor = " + plusOr);
              if (plusOr == 1){
                  ++b;
              }
              return b;
          };
      }();
      
      var closerRe = function (x){
          var b = x;
          return function(plusOr){
              Logger.log("plusor = " + plusOr);
              ++b;
              return b;
          }(x);
      };
      
      var closer = function closer(){
          var b = 0;
          return function(plusOr){
              Logger.log("plusor = " + plusOr);
              if (plusOr == 1){
                  ++b;
              }
              return b;
          };
      }();
      
      var closer = function closer(x){
          var b = x;
          return function(plusOr){
              Logger.log("plusor = " + plusOr);
              ++b;
              return b;
          }(x);
      };
      
      document.getElementById("wi").insertAdjacentHTML("afterend","<p>get = " + get + ", count = " + count + "</p>");
      if (count < 4){
        aa(1);
      }
      
      document.getElementById("wi").insertAdjacentHTML("afterend","<p>get = " + (get - 1) + ", count = " + count + "</p>"); // modified
      if (count < 4){
        aa(get); // modified
      }
      
      function doGet(){
        return HtmlService.createHtmlOutputFromFile("hello");
      }
      
      function clearProperty() {
        PropertiesService.getScriptProperties().deleteProperty("b");
      }
      
      var closerRe = function (){
          var prop = PropertiesService.getScriptProperties();
          var value = prop.getProperty("b");
          var b = value ? Number(value) : 0;
          return function(plusOr){
              Logger.log("plusor = " + plusOr);
              if (plusOr == 1){
                  ++b;
                  prop.setProperty("b", b);
              }
              return b;
          };
      }();
      
      function closer(x){
        var tmp = closerRe(x);
        Logger.log("tmp = " + tmp);
        return tmp;
      }
      
      <!DOCTYPE html>
      <html>
        <head>
          <base target="_top">
        </head>
        <body>
          <p id="wi"></p>
          <script>
          var count = 0;
      
          function success(get){
            ++count;
            document.getElementById("wi").insertAdjacentHTML("afterend","<p>get = " + get + ", count = " + count + "</p>");
            if (count < 4){
              aa(1);
            } else {
              google.script.run.clearProperty();
            }
          }
      
          aa(1);
      
          function aa(vv){
            google.script.run.withSuccessHandler(success).closer(vv);
          }
          </script>
        </body>
      </html>