есть код:
{
async function sha256(message) {
const script = document.currentScript;
const msgBuffer = new TextEncoder('utf-8').encode(message);
const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
const hashArray = Array.from(new Uint8Array(hashBuffer));
const hashHex = hashArray.map(b => ('00' + b.toString(16)).slice(-2)).join('');
return hashHex;
}
sha256(document.body.innerText).then(hash => {
const oh = localStorage.getItem('tab-reloader-hash');
if (oh && oh !== hash) {
script.dispatchEvent(new CustomEvent('play-sound', {
detail: '
https://www.w3schools.com/html/horse.ogg'
}));
}
localStorage.setItem('tab-reloader-hash', hash);
});
}
Мы можем преобразовать содержимое страницы в ХЭШ-код и использовать его для оценки наличия нового обновления содержимого или нет. Строка ХЭША невелика, поэтому мы можем просто сохранить ее для последующего использования. Следующий код вычисляет хэш-код SHA256 из всего содержимого страницы (вы даже можете ограничить код, чтобы использовать содержимое определенного элемента HTML) и сохраняет его в постоянной переменной. Этот хэш-код вычисляется после каждого обновления страницы, и если значение изменяется, пользователь получает образец звукового оповещения:
Не пашет звуковое оповещение, в моей Мозилле. Есть другой код, в котором оно пашет, поскольку вызывается другим способом:
{
const script = document.currentScript;
window.setTimeout(() => {
script.dispatchEvent(new Event('activate-tab'));
}, 500);
}
помогите чтоб заработало пожалуйста