Первая проблема состоит в том, что рассматриваемый код удаляет элемент, который затем ищет собственный код Squarespace, что вызывает ошибку, которая приводит к сбою ImageLoader Squarespace.
Вместо загрузки JQuery и заменыэлемент (в соответствии с кодом в вашем вопросе), используйте следующее:
<script>
window.Squarespace.onInitialize(Y, function() {
var parent = document.getElementsByClassName("sqs-add-to-cart-button-wrapper")[0];
var oldBtn;
var newBtn;
oldBtn = document.getElementsByClassName("sqs-add-to-cart-button")[0];
if (oldBtn) {
oldBtn.style="display: none;"
}
if (parent) {
newBtn = document.createElement("div");
newBtn.className = "amazoncheckoutbuttonwrapper";
newBtn.innerHTML = "<a class='amazoncheckoutbutton' target='_blank' href='https://www.amazon.com/Mistys-Tale-Leopold-J-Cimino/dp/1733605800/'>SHOP NOW</a>";
parent.appendChild(newBtn);
}
});
</script>
То, что вышеупомянутый код делает, показывает новую кнопку и скрывает исходную кнопку вместо ее удаления, что должно предотвратить ошибку.Вместо этого вы также можете скрыть исходную кнопку с помощью CSS.
Во-вторых, ваш сайт использует шаблон с включенной загрузкой AJAX, что может вызвать проблемы с пользовательским кодом.Я написал приведенный выше код для учета загрузки AJAX, но если у вас есть проблемы, вы можете обнаружить, что отключение AJAX решает проблему.
В-третьих, ваш сайт в какой-то момент содержалстрока Javascript, которая вызывала ошибку.
document.querySelector('.ProductItem-details .sqs-add-to-cart-button').classList.remove('sqs-editable-button');
Неясно, понадобится ли вам эта строка или нет.Но если вы это сделаете, измените его на:
window.Squarespace.onInitialize(Y, function() {
var pid = document.querySelector('.ProductItem-details .sqs-add-to-cart-button');
if (pid) {
pid.classList.remove('sqs-editable-button');
}
});
Чего здесь избегают, так это запускают код, если кнопка / класс отсутствует на странице.Приведенный выше код также учитывает загрузку AJAX в Squarespace, если вы в какой-то момент включили его.
Я думаю, что это решает все проблемы, связанные с проблемой загрузки изображений.