проблема window.location на hubspot - PullRequest
0 голосов
/ 20 марта 2019

window.location будет перенаправлять на внешние ссылки, такие как Google, но не будет перенаправлять на URL-адрес с тем же доменом, откуда он исходит (хотя он будет ссылаться на субдомены).Это пришло из формы hubspot, настроенной для перенаправления пользователя на определенную страницу благодарности в зависимости от его типа запроса.Это все в WordPress.Нет проблем, определяющих переменную выбора.Я новичок в JavaScript, спасибо за любую помощь.

onFormSubmit: function($form) {
  var choice = $('select[name="form_field_dropdown_select"]').val();
  
  if (choice == 'Support') {
    window.location = 'https://www.mycompany.com/support-thank-you/';
  } else {
    window.location = 'https://www.washingtonpost.com/';
  }
}

Я запускаю этот код через консоль, потому что я знаю, что переменная выбора установлена ​​правильно.Я получаю ошибку Uncaught SyntaxError: неожиданный токен (в строке onFormSubmit: function ($ form)

onFormSubmit: function($form) {
  var choice = "Support";
  if (choice == 'Support') {
    window.location = 'https://newcloudnetworks.com/support-thank-you';
  } else {
    window.location = 'https://www.washingtonpost.com/';
  }
}

Кроме того, я вижу, что перенаправление сначала идет на страницу поддержки, но затем сразу же перенаправляет на страницу по умолчанию / home.

[21 / Mar /2019: 11: 13: 44 -0600] "GET / support-thank-you HTTP / 1.1" 200 6015

[21 / Mar / 2019: 11: 13: 46 -0600] "GET / HTTP /1,1 "200 9683

Проблема решена.Это была проблема, с которой мне пришлось столкнуться с Хабспотом, и они смогли ее решить.Это не имеет ничего общего с ошибкой в ​​коде JS.Спасибо.

1 Ответ

0 голосов
/ 20 марта 2019

Итак, вам нужно предоставить больше информации, но я приму ваше:

  • имя хоста (домен): www.mycompany.com

Таким образом, вы можете добавить еще одну проверку для домена, в котором была использована форма.

const myDomain = 'www.mycompany.com';
onFormSubmit: function($form) {
    var choice = $('select[name="form_field_dropdown_select"]').val();

    if (choice == 'Support') {
        let domain = window.location.hostname;
        if (myDomain == domain) {
            // change path if the form is used in your domain
            window.location.pathname = 'support-thank-you';
        } else {
            // redirect to you domain
            window.location = 'https://www.mycompany.com/support-thank-you/';
        }
    } else {
        window.location = 'https://www.washingtonpost.com/';
    }
}
...