Как я могу предотвратить выполнение кода на одной странице

#javascript

Вопрос:

Мне нужно на сайты index.html и index.php и обе страницы содержат файл javascript script.js.

Я хотел бы выполнить некоторый код из script.js чтобы index.html и другим, чтобы index.php.

Возможно ли это сделать?

Код JS

 function ChangeColor()
{
   button.addEventListener("mouseover", () =>
   {
     button.classList.remove("red");
     button.classList.add("blue");
   }
  )
  button.addEventListener("mouseout", () =>
  {
    button.classList.add("blue");
    button.classList.remove("red");
  }
  )
}

function CheckErrors()
{
  //Content
}
 

В моем предыдущем коде я хотел бы выполнить функцию changeColor на обоих веб-сайтах, потому что у меня есть кнопка, а вторую функцию я хочу выполнить только в index.html потому что у меня есть форма.

Как я могу это сделать?, может быть, с помощью объекта window??

Комментарии:

1. Почему бы не разделить сценарии на разные файлы?

2. Я думал об этом, но мне бы хотелось, чтобы я мог избежать повторения некоторых строк в двух разных файлах

3. Вам не нужно ничего повторять. Вы можете разделить сценарий на три файла: один для общей функциональности, один специально для index.html , один специально для index.php . Затем загрузите два файла сценария для каждой страницы соответствующим образом.

4. Хорошо, я вижу, что это лучший способ для этого.

Ответ №1:

Вы можете проверить location.pathname , равно ли /index.html :

 function ChangeColor() {
    button.addEventListener("mouseover", () => {
        button.classList.remove("red");
        button.classList.add("blue");
    })
    button.addEventListener("mouseout", () => {
        button.classList.add("blue");
        button.classList.remove("red");
    })
}

if (location.pathname == "/index.html") {
    function CheckErrors() {
        //Content
    }
    CheckErrors();
}
 

Комментарии:

1. Я пытался, но это не работает. Я не знаю, почему

2. @javi-ur96 Обновленный ответ. Теперь это должно сработать.

3. Привет @Spectric, Это не так

4. Можете ли вы посетить index.html и проверить, что location.pathname возвращается?

5. Он возвращается /index.html и если я сделаю это в index.php /index.php. Я не понимаю, что происходит.