- ID de l'analyse :
- 601e21cf-0fb4-4cfe-bb97-b167183b5589Terminée
- URL soumise :
- https://whatthe.site/
- Fin du rapport :
Liens : 0 trouvé(s)
Liens sortants identifiés à partir de la page
Variables JavaScript : 8 trouvée(s)
Les variables JavaScript globales chargées dans l'objet fenêtre d'une page sont des variables déclarées en dehors des fonctions et accessibles depuis n'importe quel endroit du code au sein du champ d'application actuel
Nom | Type |
---|---|
onbeforetoggle | object |
documentPictureInPicture | object |
onscrollend | object |
clearPreviousEffect | function |
typeEffect | function |
startSequence | function |
resetSequence | function |
handleEnter | function |
Messages de journal de console : 2 trouvé(s)
Messages consignés dans la console web
Type | Catégorie | Enregistrement |
---|---|---|
verbose | dom |
|
error | network |
|
HTML
Le corps HTML de la page en données brutes
<!DOCTYPE html><html lang="en"><head>
<meta charset="UTF-8">
<title>What the</title>
<style>
body {
background-color: #1a1a1a;
color: white;
font-family: monospace;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
}
.message {
font-size: 24px;
white-space: nowrap;
overflow: hidden;
}
input[type="password"] {
background-color: #2a2a2a;
border: none;
color: white;
font-size: 24px;
padding: 10px;
margin-top: 20px;
display: block;
opacity: 0;
transition: opacity 0.5s ease;
}
@keyframes shake {
0%, 100% { transform: translateX(0); }
10%, 30%, 50%, 70%, 90% { transform: translateX(-10px); }
20%, 40%, 60%, 80% { transform: translateX(10px); }
}
.shake {
animation: shake 0.82s cubic-bezier(.36,.07,.19,.97) both;
}
</style>
</head>
<body>
<div id="message1" class="message">What th</div>
<div id="message2" class="message"></div>
<input type="password" id="passwordInput" placeholder="Password..." style="opacity: 0;">
<script>
const message1 = document.getElementById('message1');
const message2 = document.getElementById('message2');
const passwordInput = document.getElementById('passwordInput');
let enterAccepted = true;
function clearPreviousEffect() {
message1.innerHTML = '';
message2.innerHTML = '';
passwordInput.value = '';
passwordInput.style.opacity = 0;
}
function typeEffect(element, text, callback) {
let index = 0;
element.innerHTML = '';
function type() {
if (index < text.length) {
element.innerHTML += text.charAt(index);
index++;
setTimeout(type, 110);
} else if (callback) {
callback();
}
}
type();
}
function startSequence() {
clearPreviousEffect();
enterAccepted = true;
typeEffect(message1, "What the", () => {
typeEffect(message2, "Please enter the password...", () => {
passwordInput.style.opacity = 1;
passwordInput.focus();
});
});
}
function resetSequence() {
clearPreviousEffect();
setTimeout(startSequence, 500);
}
function handleEnter(e) {
if (e.key === "Enter" && enterAccepted) {
enterAccepted = false;
passwordInput.classList.add('shake');
setTimeout(() => {
passwordInput.classList.remove('shake');
typeEffect(message1, "Incorrect password...", () => {
setTimeout(resetSequence, 1500);
});
}, 820);
}
}
passwordInput.addEventListener('input', () => {
passwordInput.addEventListener('keydown', handleEnter);
});
window.onload = startSequence;
</script>
</body></html>