Aylong (обсуждение | вклад) Нет описания правки |
Aylong (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
// Ассинхронная загрузка страницы. Убирает всякие мерцания, показывая сразу готовую страницу. Костыль? Да. Работает? Ну вроде Clueless | |||
document.addEventListener('click', function(event) { | document.addEventListener('click', function(event) { | ||
var link = event.target.closest('a'); | var link = event.target.closest('a'); | ||
Строка 19: | Строка 20: | ||
}); | }); | ||
// Заставляем вперёд/назад работать. | |||
window.addEventListener('popstate', function(event) { | |||
var xhr = new XMLHttpRequest(); | |||
xhr.onreadystatechange = function() { | |||
if (xhr.readyState === XMLHttpRequest.DONE) { | |||
if (xhr.status === 200) { | |||
document.body.innerHTML = xhr.responseText; | |||
} | |||
} | |||
}; | |||
xhr.open('GET', window.location.href, true); | |||
xhr.send(); | |||
}); | |||
document.addEventListener('click', function(event) { | |||
var link = event.target.closest('a'); | |||
if (link && link.href && link.href.indexOf(window.location.origin) !== -1) { | |||
event.preventDefault(); | |||
var xhr = new XMLHttpRequest(); | |||
xhr.onreadystatechange = function() { | |||
if (xhr.readyState === XMLHttpRequest.DONE) { | |||
if (xhr.status === 200) { | |||
document.body.innerHTML = xhr.responseText; | |||
window.history.pushState({}, '', link.href); | |||
} | |||
} | |||
}; | |||
xhr.open('GET', link.href, true); | |||
xhr.send(); | |||
} | |||
}); | |||
// Кнопочка для переключения темы на светлую и обратно. | |||
$(document).ready(function() { | $(document).ready(function() { | ||
var container = document.getElementById("p-personal"); | var container = document.getElementById("p-personal"); |
Версия от 20:58, 4 мая 2024
// Ассинхронная загрузка страницы. Убирает всякие мерцания, показывая сразу готовую страницу. Костыль? Да. Работает? Ну вроде Clueless document.addEventListener('click', function(event) { var link = event.target.closest('a'); if (link && link.href && link.href.indexOf(window.location.origin) !== -1) { event.preventDefault(); var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState === XMLHttpRequest.DONE) { if (xhr.status === 200) { document.body.innerHTML = xhr.responseText; window.history.pushState({}, '', link.href); } } }; xhr.open('GET', link.href, true); xhr.send(); } }); // Заставляем вперёд/назад работать. window.addEventListener('popstate', function(event) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState === XMLHttpRequest.DONE) { if (xhr.status === 200) { document.body.innerHTML = xhr.responseText; } } }; xhr.open('GET', window.location.href, true); xhr.send(); }); document.addEventListener('click', function(event) { var link = event.target.closest('a'); if (link && link.href && link.href.indexOf(window.location.origin) !== -1) { event.preventDefault(); var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState === XMLHttpRequest.DONE) { if (xhr.status === 200) { document.body.innerHTML = xhr.responseText; window.history.pushState({}, '', link.href); } } }; xhr.open('GET', link.href, true); xhr.send(); } }); // Кнопочка для переключения темы на светлую и обратно. $(document).ready(function() { var container = document.getElementById("p-personal"); if (container) { var checkbox = document.createElement("input"); checkbox.type = "checkbox"; checkbox.id = "theme-toggle"; var label = document.createElement("label"); label.htmlFor = "theme-toggle"; label.id = "theme-button"; container.parentNode.insertBefore(checkbox, container); container.parentNode.insertBefore(label, container); } var isLightTheme = localStorage.getItem("isLightTheme"); if (isLightTheme === "true") { document.documentElement.classList.add('light'); } else { document.documentElement.classList.remove('light'); } $("#theme-toggle").change(function() { toggleTheme(); }); }); function toggleTheme() { var isLightTheme = document.documentElement.classList.toggle('light'); localStorage.setItem("isLightTheme", isLightTheme); }