- ID de exploración:
- 3ed0cac9-6089-4b14-935d-38ed81a5ff7cFinalizado
- URL enviada:
- https://mcpsmd.app/Redireccionado
- Informe finalizado:
Enlaces: 0 encontrados
Los enlaces salientes identificados en la página
Variables JavaScript: 12 encontradas
Las variables JavaScript globales cargadas en el objeto de ventana de una página son variables declaradas fuera de las funciones y a las que se puede acceder desde cualquier lugar del código en el ámbito actual
Nombre | Tipo |
---|---|
0 | object |
onbeforetoggle | object |
documentPictureInPicture | object |
onscrollend | object |
__cfQR | object |
requestNotificationPermission | function |
subscribeUserToPushNotifications | function |
sendSubscriptionToServer | function |
urlBase64ToUint8Array | function |
tailwind | object |
Mensajes de registro de la consola: 3 encontrados
Mensajes registrados en la consola web
Tipo | Categoría | Registrar |
---|---|---|
warning | other |
|
log | javascript |
|
error | other |
|
HTML
El cuerpo HTML sin procesar de la página
<!DOCTYPE html><html lang="en"><head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>MCPS Status Page - Code Green</title>
<link rel="apple-touch-icon" href="/static/img/green/apple-touch-icon-180x180.png">
<link rel="shortcut icon" href="/static/img/green/apple-touch-icon-180x180.png">
<meta property="og:url" content="https://mcpsmd.app/status">
<meta property="title" content="There is currently a Code Green for Montgomery County Public Schools (MCPS).">
<meta property="og:title" content="There is currently a Code Green for Montgomery County Public Schools (MCPS).">
<meta property="og:image" content="/static/img/green.png">
<meta property="image" content="/static/img/green.png">
<meta property="og:description" content="All schools and offices are open on time. Before and After school childcare programs and Community Use occur as scheduled">
<meta property="description" content="All schools and offices are open on time. Before and After school childcare programs and Community Use occur as scheduled">
<script type="text/javascript">
// Check if service workers are supported
if ('serviceWorker' in navigator) {
// Register the service worker
navigator.serviceWorker.register('/service-worker.js')
.then(function (registration) {
console.log('Service Worker registered:', registration);
// Request permission for notifications
requestNotificationPermission(registration);
})
.catch(function (error) {
console.error('Service Worker registration failed:', error);
});
} else {
console.error('Service Workers are not supported in this browser.');
}
// Function to request notification permission from the user
function requestNotificationPermission(registration) {
Notification.requestPermission()
.then(function (permission) {
if (permission === 'granted') {
console.log('Notification permission granted.');
// Subscribe the user to push notifications
subscribeUserToPushNotifications(registration);
} else {
console.error('Notification permission not granted.');
}
})
.catch(function (error) {
console.error('Error requesting notification permission:', error);
});
}
// Function to subscribe the user to push notifications
function subscribeUserToPushNotifications(registration) {
const applicationServerKey = urlBase64ToUint8Array('BGszmYGoUpftvo6gSyusAN22t0PfZMjkocRZx6Mj10-4J7raU-K-pMW0woRbG_3JyzyNjD6nODGcDHvEKsOE5pE');
registration.pushManager.subscribe({
userVisibleOnly: true,
applicationServerKey: applicationServerKey
})
.then(function (subscription) {
console.log('User is subscribed:', subscription);
// Send the subscription to the server
sendSubscriptionToServer(subscription);
})
.catch(function (error) {
console.error('Failed to subscribe the user:', error);
});
}
// Function to send the subscription object to the server
function sendSubscriptionToServer(subscription) {
fetch('/subscribe-notification', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(subscription)
})
.then(function (response) {
if (!response.ok) {
throw new Error('Bad status code from server.');
}
return response.json();
})
.then(function (data) {
console.log('Server response:', data);
})
.catch(function (error) {
console.error('Error sending subscription to server:', error);
});
}
// Utility function to convert a base64url string to a Uint8Array
function urlBase64ToUint8Array(base64String) {
// Pad the base64 string if necessary
const padding = '='.repeat((4 - (base64String.length % 4)) % 4);
// Replace URL-safe characters with base64 characters
const base64 = (base64String + padding)
.replace(/\-/g, '+')
.replace(/_/g, '/');
// Decode the base64 string
const rawData = atob(base64);
// Create a Uint8Array of the appropriate length
const outputArray = new Uint8Array(rawData.length);
// Convert each character to its UTF-8 representation
for (let i = 0; i < rawData.length; ++i) {
outputArray[i] = rawData.charCodeAt(i);
}
return outputArray;
}
</script>
<script src="https://cdn.tailwindcss.com" type="text/javascript"></script>
<style>
@font-face {
font-family: 's';
src: url(/static/fonts/font.woff2) format('woff2');
}
.custom-icon {
font-family: 's';
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
display: inline-block;
font-style: normal;
font-variant: normal;
text-rendering: auto;
line-height: 1;
}
</style>
<style>/* ! tailwindcss v3.4.5 | MIT License | https://tailwindcss.com */*,::after,::before{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}::after,::before{--tw-content:''}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*, ::before, ::after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.fixed{position:fixed}.inset-x-0{left:0px;right:0px}.bottom-0{bottom:0px}.mx-auto{margin-left:auto;margin-right:auto}.mb-4{margin-bottom:1rem}.mr-2{margin-right:0.5rem}.mt-2{margin-top:0.5rem}.mt-4{margin-top:1rem}.flex{display:flex}.h-3{height:0.75rem}.h-screen{height:100vh}.w-3{width:0.75rem}.w-full{width:100%}.max-w-xs{max-width:20rem}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:0.5rem}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.p-4{padding:1rem}.px-4{padding-left:1rem;padding-right:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.text-center{text-align:center}.font-sans{font-family:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:0.875rem;line-height:1.25rem}.text-xs{font-size:0.75rem;line-height:1rem}.font-bold{font-weight:700}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94 / var(--tw-text-opacity))}.underline{-webkit-text-decoration-line:underline;text-decoration-line:underline}.shadow-md{--tw-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}@media (min-width: 640px){.sm\:max-w-sm{max-width:24rem}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-sm{font-size:0.875rem;line-height:1.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}.sm\:text-xs{font-size:0.75rem;line-height:1rem}}@media (min-width: 768px){.md\:max-w-md{max-width:28rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}}@media (min-width: 1024px){.lg\:max-w-lg{max-width:32rem}}@media (prefers-color-scheme: dark){.dark\:bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81 / var(--tw-bg-opacity))}.dark\:bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.dark\:bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94 / var(--tw-bg-opacity))}.dark\:font-bold{font-weight:700}.dark\:text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219 / var(--tw-text-opacity))}.dark\:text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity))}.dark\:text-green-500{--tw-text-opacity:1;color:rgb(34 197 94 / var(--tw-text-opacity))}}</style></head>
<body class="bg-gray-100 dark:bg-gray-800 font-sans">
<!--<div id="banner" class="sticky top-0 z-50 bg-yellow-400 dark:bg-yellow-600 text-black text-center p-2 rounded-b-lg">
<p>(10/14) Walt Whitman High is experiencing ongoing plumbing issues. School is cancelled after 11:15.</p>
</div>-->
<div class="flex items-center justify-center h-screen">
<div class="w-full max-w-xs sm:max-w-sm md:max-w-md lg:max-w-lg px-4 py-6 mx-auto bg-white dark:bg-gray-700 rounded-lg shadow-md">
<div class="text-center">
<div class="flex flex-col items-center justify-center mb-4">
<div class="flex items-center">
<span class="h-3 w-3 rounded-full mr-2 bg-green-500 dark:bg-green-500"></span>
<span class="text-lg sm:text-xl md:text-2xl font-bold text-green-500 dark:text-green-500">Code Green</span>
</div>
<p class="text-xs sm:text-xs text-gray-500 dark:text-gray-400 mt-2">as of <span id="epoch">just now</span></p>
</div>
<p class="text-sm sm:text-base text-gray-600 dark:text-gray-300">All schools and offices are open on time. Before and After school childcare programs and Community Use occur as scheduled</p>
</div>
<div class="text-center mt-4">
<p class="text-xs text-gray-500 dark:text-gray-300 dark:font-bold">School is operating normally</p>
</div>
</div>
</div>
<footer id="canvas" class="fixed inset-x-0 bottom-0 bg-white dark:bg-gray-700">
<div class="p-4 text-center text-gray-600 dark:text-gray-300">
<p class="text-xs sm:text-sm" style="margin-bottom:1.5vh;">© 2024 MCPSMD.app. All Rights Reserved.</p>
<!--<i class="custom-icon text-green-700 dark:text-green-300"></i>
<span class="ml-2 text-green-700 dark:text-green-300"><span>Net-zero carbon</span></span> | -->Made with pride in the USA— keeping America great
<br>
<p class="text-xs sm:text-sm" style="margin-top:1.5vh;">
<a href="/terms" class="underline">Terms of Service</a> |
<a href="/privacy" class="underline">Privacy Policy</a>
</p>
</div>
</footer>
<script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'8d7154ac8b952fa1',t:'MTcyOTY4MjM1Mi4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script><iframe height="1" width="1" style="position: absolute; top: 0px; left: 0px; border: none; visibility: hidden;"></iframe>
<script type="text/javascript">
const time = document.getElementById('epoch').textContent;
function epochToText(epoch) {
const epochNow = new Date().getTime() / 1000;
if (Number.isInteger(epochNow) && Number.isInteger(epoch) && epoch < epochNow && epoch > 0 && ) {
const diff = epochNow - epoch;
if (diff < 60) {
return 'just now';
} else if (diff < 3600) {
return `${Math.floor(diff / 60)} minutes ago`;
} else if (diff < 86400) {
return `${Math.floor(diff / 3600)} hours ago`;
} else {
return `${Math.floor(diff / 86400)} days ago`;
}
} else {
return 'unknown';
}
}
</script>
</body></html>