javascript - 在 google-app 脚本中的 If..If Else..Else 中调用函数

标签 javascript if-statement google-apps-script google-analytics google-sheets

我正在 Google 电子表格中处理一个项目,并且正在使用一个脚本来触发工作表上的事件,例如编辑/删除/换行等。这些事件会通过 Measurements Protocol 发送到 Google Analytics。

现在我有一个 If...Else if...Else 确定这是一个编辑、换行或删除的现有值。

这是我的代码:
//回答后更新了代码,但仍然无法正常工作。

    var GoogleAnalyticsEDIT;
var GoogleAnalyticsSLETT;
var GoogleAnalyticsREDIGER;


// MP
// EDIT SEND
GoogleAnalyticsEDIT = function GoogleAnalyticsEDIT(tid){
  var data = {   'v': '1',
                 't' : 'event',
                 'tid': tid,          // TrackingID Google Analytics
                 'cid': Session.getTemporaryActiveUserKey(),
                 'ec': 'SpreadSheet', // Event Kategori.
                 'ea': 'nyVerdi-'+noLetter,    // Event Hendelse(action) 
                 'el':  SpreadsheetApp.getActiveSpreadsheet().getName(),
                 'ev': '300' };       // test og fjern                                                               <----- TEST OG FJERN
  var payload = Object.keys(data).map(function(key) {
                                        return encodeURIComponent(key) + '=' + encodeURIComponent(data[key]);
                                    }).join('&');
  var options = {'method' : 'POST',
                 'payload' : payload };
  UrlFetchApp.fetch('http://www.google-analytics.com/collect', options); 
}



//MP
// SLETT SEND
GoogleAnalyticsSLETT = function GoogleAnalyticsSLETT(tid){
  var data = {   'v': '1',
                 't' : 'event',
                 'tid': tid,          // TrackingID Google Analytics
                 'cid': Session.getTemporaryActiveUserKey(),
                 'ec': 'SpreadSheet', // Event Kategori.
                 'ea': 'slettVerdi-'+noLetter,    // Event Hendelse(action) 
                 'el':  SpreadsheetApp.getActiveSpreadsheet().getName(),
                 'ev': '300' };       // test og fjern                                                               <----- TEST OG FJERN
  var payload = Object.keys(data).map(function(key) {
                                        return encodeURIComponent(key) + '=' + encodeURIComponent(data[key]);
                                    }).join('&');
  var options = {'method' : 'POST',
                 'payload' : payload };
  UrlFetchApp.fetch('http://www.google-analytics.com/collect', options); 
}   




// MP  
// REDIGER SEND
GoogleAnalyticsREDIGER = function GoogleAnalyticsREDIGER(tid){
  var data = {   'v': '1',
                 't' : 'event',
                 'tid': tid,          // TrackingID Google Analytics
                 'cid': Session.getTemporaryActiveUserKey(),
                 'ec': 'SpreadSheet', // Event Kategori.
                 'ea': 'redigerVerdi-'+noLetter,    // Event Hendelse(action)
                 'el':  SpreadsheetApp.getActiveSpreadsheet().getName(),
                  };       // test og fjern                                                               <----- TEST OG FJERN
  var payload = Object.keys(data).map(function(key) {
                                        return encodeURIComponent(key) + '=' + encodeURIComponent(data[key]);
                                    }).join('&');
  var options = {'method' : 'POST',
                 'payload' : payload }; 
  UrlFetchApp.fetch('http://www.google-analytics.com/collect', options); 
}   




//FUNKSJON ---- DEBUG
var newValue = (typeof e.value == "object" ? e.range.getValue() : e.value); 
var oldValue = (typeof e.oldValue == "object" ? e.range.getValue() : e.oldValue); 


  if (!e.oldValue ) {
    Browser.msgBox("GA: newValue (NY LINJE)");
   GoogleAnalyticsEDIT("UA-101502909-2"); 
    }

  else if (e.value.hasOwnProperty("oldValue")) {
   GoogleAnalyticsSLETT("UA-101502909-2");
     }

  else { 
    Browser.msgBox("GA: ChangeValue (REDIGERT VERDI)"); 
   GoogleAnalyticsREDIGER("UA-101502909-2")

    }


} //slutt: MyOnEditNeW();

问题:第一个 IF(..) 语句有效,我收到 msgbox 警报并且数据被发送到 Google Analytics,但不是第二个打击 If Else(...) block 。 msgbox 警报有效,但未触发 GoogleAnalyticsSLETT(); 函数。这是一个可安装的触发器

谁知道可能不允许在 If Else 语句中调用函数,还是我的代码有误?

最佳答案

我可能会改变这个:else if (e.value.hasOwnProperty("oldValue")) 到这个 else if (e.oldvalue)

关于javascript - 在 google-app 脚本中的 If..If Else..Else 中调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45441871/

相关文章:

javascript - 如何将对象数组映射到具有重复值标识符的数组?

html - 在 Google 表格上使用带有 Google Apps 脚本的 HTML 下拉菜单

google-apps-script - 我想根据所选单元格获取电子表格行的值

google-apps-script - 如何仅向最后一次提交的 Google 表单发送电子邮件?

javascript - 完全之谜 : simple RegExp code only working on certain pages

javascript - AngularJS 中对 http api 的调用次数为 `n` 次。我应该期待它们 `n` 次吗?

javascript - 调整 Magento 中 page.xml 中包含的 js 脚本

python - 条件 If 语句 : If value in row contains string . .. 设置另一列等于字符串

java - 有条件的拖放图像

c# - 嵌套的 if 条件 vs 多个分离的 if 条件,每个条件都有 return 语句