Источник вашей проблемы в том, что в вашем шаблоне включена загрузка AJAX.В настоящее время есть несколько общепринятых способов справиться с этим в качестве разработчика Squarespace:
- Отключить загрузку AJAX
- Напишите функции JavaScript таким образом, чтобы они выполнялись при начальной загрузке сайтаи всякий раз, когда происходит «загрузка AJAX».
Опция 1 - отключить AJAX :
- В главном меню нажмите Дизайн , а затем нажмите Стили сайта .
- Прокрутите вниз до Сайт: Загрузка .
- Снять отметку Включить загрузку Ajax .
Вариант 2 - Есть несколько способовчто разработчики подходят к этому, в том числе:
<script>
window.Squarespace.onInitialize(Y, function() {
// do stuff
});
</script>
или
<script>
(function() {
// Establish a function that does stuff.
var myFunction = function() {
// Do stuff here.
};
// Initialize the fn on site load.
myFunction();
// myFunction2(); , etc...
// Reinit. the fn on each new AJAX-loaded page.
window.addEventListener("mercury:load", myFunction);
})();
</script>
или
<script>
(function() {
// Establish a function that does stuff.
var myFunction = function() {
// Do stuff here.
};
// Initialize the fn on site load.
myFunction();
// Reinit. the fn on each new AJAX-loaded page.
new MutationObserver(function() {
myFunction();
// myFunction2(); , etc...
}).observe(document.body, {attributes:true, attributeFilter:["id"]});
})();
</script>
Каждый из этих работает для большинства последних (ввремя написания) шаблонов большую часть времени.У каждого из них есть свои преимущества и недостатки, а также контексты, в которых они не работают так, как можно было бы ожидать (например, на странице /cart/
или других «системных» страницах).Добавив свой код в контекст одного из методов, приведенных выше, и убедившись, что код, конечно, работает в нужном контексте и без собственных ошибок / проблем, вы будете запускать код при начальной загрузке сайта и на каждой странице AJAX.загрузить (за некоторыми исключениями, в зависимости от используемого вами метода).