How to avoid 'Uncaught ReferenceError: ? is undefined'?

How to avoid 'Uncaught ReferenceError: ? is undefined'?

我在每一页的底部都有一个脚本 (config.js)。但是,该脚本包含并非在每个页面上都使用的代码。控制台 returns 未使用或未声明的变量为未定义。

let currentURL = document.location.href;

function redirectURL() {
  if (currentURL.indexOf('dogs.html') > -1) {
    redirect.innerHTML = `<a href="/pets/cats.html">Cats</a>`;
  } else {
    redirect.innerHTML = `<a href="/pets/dogs.html">Dogs</a>`;
  }
}
redirectURL();

这是返回的内容。

我该如何解决这个问题?

您需要在尝试使用之前检查 redirect 元素是否存在。

function redirectURL() {
  if (typeof redirect == 'undefined') {
    return;
  }
  if (currentURL.indexOf('dogs.html') > -1) {
    redirect.innerHTML = `<a href="/pets/cats.html">Cats</a>`;
  } else {
    redirect.innerHTML = `<a href="/pets/dogs.html">Dogs</a>`;
  }
}

这将允许该函数在未定义 redirect.

的页面上无错误地运行