Este código ha sido revisado en busca de errores y no se detectó ninguno. Pero, cuando se ejecuta, alerta nulo.
Para Sololearners, mi bit de código: https://code.sololearn.com/WOv1cF0EewdB/?ref=app
¿Por qué es esto?*
window.onload = function() { let reload_interval= setInterval(rel, 120000); if (localStorage.getItem('visit') !== true) { let username = prompt('Enter your name:'); if (confirm('Do you want to be known as ' + username + ' from now on?')) { localStorage.setItem('name', username); } else { username = prompt('OK then, enter your name:'); if (confirm('Do you want to be known as ' + username + 'from now on?')) { localStorage.setItem('name', username); } } localStorage.setItem('visit', true); } if (localStorage.getItem('visit') === true) { document.getElementById('p').innerHTML = localStorage.getItem('name'); alert('Hello, ' + localStorage.getItem('name')); } }; function clearLocalStorage() { if (confirm('Do you want to clear current username data?')) { localStorage.clear(); alert('Cleared'); } }* Las respuestas de jQuery están bien
No está recibiendo una alerta de saludo porque está comprobando el valor de retorno de getItem con === true y !== true .
setItem convertirá su valor en string , por lo que localStorage.getItem('visit') === true nunca será verdadero
Si desea verificar si el usuario ha visitado la página, debe usar === "true" (visitado) y !== "true" (no visitado) ya que devuelve una string .