В онлайн-игре Escape JS внезапно не работает после 5 лет работы нормально. Конфликт обновлений браузера? [закрыто]Javascript

Форум по Javascript
Ответить
Anonymous
 В онлайн-игре Escape JS внезапно не работает после 5 лет работы нормально. Конфликт обновлений браузера? [закрыто]

Сообщение Anonymous »

Я писал онлайн-квест-игры в 2020 году, этот JS всегда работал нормально, он находится на сайте Wordpress, в плагине WP Coder, не идеальный код, но всегда работал хорошо, в последний месяц он не работает, при нажатии кнопки «Начать», который обычно запускает таймер обратного отсчета и переходит в следующую «комнату», ничего не происходит вообще, иногда он работает в Chrome, но вообще ничего в Safari, у меня есть html и CSS, если нужно, но может ли кто-нибудь понять, почему это внезапно перестает работать, может быть конфликтует с обновлениями Safari?

Код: Выделить всё

window.onload = () => {
// Timer variables
let totalSeconds = 0;
let intervalId = null;

// Start button handler
const startBtn = document.getElementById('start-btn');
startBtn.addEventListener('click', () => {
// Start timer
intervalId = setInterval(startTimer, 1000);

// Destroy all iframes to stop video
document.querySelectorAll('iframe').forEach(iframe => iframe.src = '');

// Hide intro fieldset and show first puzzle
document.getElementById('introFieldset').style.display = 'none';
document.getElementById('flip').style.display = 'block';
document.getElementById('room1Fieldset').style.display = 'block';
});

// Timer function
function startTimer() {
totalSeconds++;
let minutes = Math.floor(totalSeconds / 60);
let seconds = totalSeconds % 60;
document.getElementById("minute").innerHTML = minutes;
document.getElementById("seconds").innerHTML = seconds;

if (totalSeconds >= 1800) { // 30 min
clearInterval(intervalId);
document.getElementById("message001").innerHTML = "Time's up!";
document.getElementById("message004").innerHTML = "Don't worry, you can carry on, time yourself.

";
document.getElementById("message008").style.display = "none";
}
}

// Scroll up function for Next buttons
function scrollUp() {
window.scrollTo({ top: 0, behavior: 'smooth' });
}

// Correct answers mapping
const answers = {
room1Input: 'toilet',
room2Input: 'stage',
room3Input: '9476',
room5Input: '2950',
room7Input: '170',
room8Input: '3415'  // final answer
};

// Next button fieldset mapping
const nextMapping = {
room1Next: 'room2Fieldset',
room2Next: 'room3Fieldset',
room3Next: 'room5Fieldset',
room5Next: 'room7Fieldset',
room7Next: 'room8Fieldset',
escape: 'finalFieldset'
};

// Enable Next/Escape buttons when correct answer typed
Object.keys(answers).forEach(inputId => {
const input = document.getElementById(inputId);

// Special case for final input
const nextButtonId = inputId === 'room8Input' ? 'escape' : inputId.replace('Input', 'Next');
const nextBtn = document.getElementById(nextButtonId);

input.addEventListener('input', () => {
if (input.value.trim().toLowerCase() === answers[inputId].toLowerCase()) {
nextBtn.disabled = false;
} else {
nextBtn.disabled = true;
}
});
});

// Next button click handling
Object.keys(nextMapping).forEach(buttonId => {
const btn = document.getElementById(buttonId);
const nextFieldsetId = nextMapping[buttonId];

btn.addEventListener('click', () => {
// Hide current fieldset
btn.parentElement.style.display = 'none';
// Show next fieldset
document.getElementById(nextFieldsetId).style.display = 'block';
scrollUp();

// Special case for Escape button: stop timer and show time used
if (buttonId === 'escape') {
clearInterval(intervalId);

// Hide the timer display
const timerContainer = document.getElementById('flip');
if (timerContainer) timerContainer.style.display = 'none';

// Show escape time
const minutes = Math.floor(totalSeconds / 60);
const seconds = totalSeconds % 60;
const messageEl = document.getElementById('message007');
if (messageEl) {
messageEl.innerHTML = `You Escaped in: ${minutes} minute(s) and ${seconds} second(s)`;
}
}
});
});
};

Подробнее здесь: https://stackoverflow.com/questions/798 ... ne-browser
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»