Куда поставить js файл на странице что бы он работал для измененной ссылки?
Используя history api, метод history.pushState({}, "", href) изменяю ссылку,
через ajax подгружаю контент, и как бы новая страница,
файл js находится на основной странице,
если обновить страницу, то js не срабатывает, так понимаю из того что ссылка теперь другая,
что же тогда делать? js файлу надо понять что происходит обновление, и не переходить по ссылке
function getTest (test) {
var xhr = new XMLHttpRequest();
xhr.open('GET', location.protocol+"//"+location.host+"/html"+test, false);
xhr.send();
if (xhr.status != 200) {
alert( xhr.status + ': ' + xhr.statusText ); // пример вывода: 404: Not Found
} else {
main.innerHTML=xhr.responseText;
}
}
function getMenuItem (e) {
e.preventDefault();
var et = e.target;
var href = et.dataset.href;
getTest("/"+href)
history.pushState({a: href}, "", href)
}
var main = document.querySelector("main");
var menuSite = document.getElementById('menuSite');
menuSite.addEventListener("click", getMenuItem)
getTest("/test1.html")
habrdima, тогда всё понятно.
При перезагрузке вы вызываете не index.html, а свой test1, в котором ничего не должно быть подключено, т.к. это просто содержимое main dom-а, и подключение скриптов там быть не должно в вашем случае.
Вам нужно над роутингом подумать.
Хотя, я полагаю, это просто школьная лаба?