Модальный не показывает, если пользователь вручную вводит наш URL в адресной строке - PullRequest
0 голосов
/ 03 апреля 2020

Модал, который я создал, отображается, когда пользователь заходит на нашу страницу по внешней ссылке (например, результат поиска Google), но , если пользователь заходит на наш сайт, вручную вводя наш URL-адрес в адресную строку, возникает ошибка и модальный не появляется.

Вот мой код:

  const siteUrl = ["website.com"];
  const referrer_hostname = new URL(document.referrer).hostname;

  if (siteUrl.includes(referrer_hostname)) {
    console.log("Don't Show Modal", document.referrer);
  } else {
    console.log("Show Modal", document.referrer);

    $( window ).on('load', function() {
      console.log("closure modal firing");
      $('#closureModal').modal({
        backdrop: 'static',
        keyboard: false,
        show: true
      });
    });

#closureModal подключен к HTML модального.

Ошибка: (index):123 Uncaught TypeError: Failed to construct 'URL': Invalid URL

1 Ответ

0 голосов
/ 03 апреля 2020

document.referrer - пустая строка "", когда вы вводите URL в адресную строку. Попробуйте добавить валидацию:

const referrer_hostname = document.referrer !== "" ? new URL(document.referrer).hostname : "";

, это позволяет избежать ошибки TypeError

...