uncaught RangeError: Превышен максимальный размер стека вызовов при использовании пикселя Facebook - PullRequest
0 голосов
/ 19 октября 2018

В моем приложении Laravel я использую пиксель Facebook для отслеживания.Одна из таких метрик отслеживания - это отправка формы.

$("#emailConfirmation").on("submit", function(e) {
  var eventId = {{ $event->id }};

  if (eventId === 87 || eventId === 88 || eventId === 89) {
    e.preventDefault();

    fbq('track', 'Lead', {
      content_name: 'Email confirmation',
      content_category: 'Form submission'
    });

    $("#emailConfirmation").submit();
  }
});

Это означает, что нужно запретить отправку формы, если $event, переданный в представление, имеет определенный идентификатор, а затем отправить запрос вFacebook Pixel Analytics, а затем отправьте форму.

Вместо этого я получаю следующую ошибку:

uncaught RangeError: Максимальный размер стека вызовов превышен

1 Ответ

0 голосов
/ 19 октября 2018

Проблема заключается в том, что вы создаете бесконечную рекурсию, вызывая событие submit в обработчике submit.

Чтобы исправить это, вместо этого вызовите событие submit для собственного элемента form.из объекта jQuery:

$("#emailConfirmation").on("submit", function(e) {
  var eventId = {{ $event -> id}};
  if (eventId === 87 || eventId === 88 || eventId === 89) {
    e.preventDefault();

    fbq('track', 'Lead', {
      content_name: 'Email confirmation',
      content_category: 'Form submission'
    });

    this.submit(); // change here
  }
});
...