Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.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 推送到数据层中未出现的数据层_Javascript_Drupal_Google Analytics_Google Tag Manager - Fatal编程技术网

Javascript 推送到数据层中未出现的数据层

Javascript 推送到数据层中未出现的数据层,javascript,drupal,google-analytics,google-tag-manager,Javascript,Drupal,Google Analytics,Google Tag Manager,我有一门活动课 /** Class representing a Google Analytics Event. */ class AnalyticsEventInterface { event = {}; getEvent() { return this.event; } } class SearchClickEvent extends AnalyticsEventInterface { /** * Create a SearchResultClick ana

我有一门活动课

/** Class representing a Google Analytics Event. */
class AnalyticsEventInterface {
  event = {};

  getEvent() {
    return this.event;
  }
}
class SearchClickEvent extends AnalyticsEventInterface {
  /**
   * Create a SearchResultClick analytics event.
   * @param {string} term - The search result's landing query term.
   * @param {string} type - The type of search result's landing with.
   * @param {int} page - The page number of the result clicked.
   * @param {int} position - The calculated position of the result clicked.
   */
  constructor(term, type, page, position) {
    super();
    this.event.event = 'search_result_click';
    this.event.search_term = term;
    this.event.search_type = type;
    this.event.search_page = page;
    this.event.search_position = position;
  }
}
以及扩展events类的特定事件

/** Class representing a Google Analytics Event. */
class AnalyticsEventInterface {
  event = {};

  getEvent() {
    return this.event;
  }
}
class SearchClickEvent extends AnalyticsEventInterface {
  /**
   * Create a SearchResultClick analytics event.
   * @param {string} term - The search result's landing query term.
   * @param {string} type - The type of search result's landing with.
   * @param {int} page - The page number of the result clicked.
   * @param {int} position - The calculated position of the result clicked.
   */
  constructor(term, type, page, position) {
    super();
    this.event.event = 'search_result_click';
    this.event.search_term = term;
    this.event.search_type = type;
    this.event.search_page = page;
    this.event.search_position = position;
  }
}
当单击事件发生时触发

(function ($) {
  'use strict';
  Drupal.behaviors.search_landing_page = function (context) {
    //When a search result is clicked a google analytics event is triggered and data collected.
    var logSearchClick = function (event) {
      var analyticsSettings = null;
      if (typeof Drupal !== "undefined" && typeof Drupal.settings !== "undefined" && typeof Drupal.settings.analytics !== "undefined") {
        analyticsSettings = Drupal.settings.analytics;
      }
      if (analyticsSettings === null) {
        // Escape early if we don't have the info that we need.
        return;
      }
      var queryTerm = analyticsSettings.term || null;
      var searchType = analyticsSettings.type || null;
      var pageNumber = analyticsSettings.page || null;
      var $results = $('.c-search-result');
      var resultsPerPage = $results.length;
      var positionData = $results.data('position');
      var positionID = positionData + ((pageNumber - 1) * resultsPerPage);
      var searchClickEvent = new SearchClickEvent(queryTerm, searchType, pageNumber, positionID);
      window.dataLayer = window.dataLayer || [];
      window.dataLayer.push(searchClickEvent.getEvent())
    }

    // Attach the function to the event.
    $('.c-search-result').off('click').on('click', logSearchClick);
  };
})(jQuery);

通过调试,所有的行都被调用,事件看起来像是被推送的,但是当我在控制台中单击搜索结果后检查数据层时,新事件不在数据层中。任何帮助都将不胜感激。我也没有访问客户端GTM的权限。

您能分享一下“searchClickEvent.getEvent()”函数返回的控制台吗?searchClickEvent.getEvent();我获取未捕获的引用错误:未定义searchClickEvent和dataLayer.push({'event':'event'});我没有定义,但是我可以在调试器中跟随代码