https://mcpsmd.app/status

送信済みURL:
https://mcpsmd.app/リダイレクト済み
レポート終了日:

リンク · 0件検出

ページから特定された発信リンク

JavaScript変数 · 12件検出

ページのウィンドウオブジェクトにロードされたグローバルのJavaScript変数は関数以外の場所で宣言された変数で、現在のスコープ内であればコードのどこからでもアクセス可能です

名前規模
0object
onbeforetoggleobject
documentPictureInPictureobject
onscrollendobject
__cfQRobject
requestNotificationPermissionfunction
subscribeUserToPushNotificationsfunction
sendSubscriptionToServerfunction
urlBase64ToUint8Arrayfunction
tailwindobject

コンソールログメッセージ · 3件検出

Webコンソールにログ記録されたメッセージ

規模分類ログ
warningother
URL
https://cdn.tailwindcss.com/
テキスト
cdn.tailwindcss.com should not be used in production. To use Tailwind CSS in production, install it as a PostCSS plugin or use the Tailwind CLI: https://tailwindcss.com/docs/installation
logjavascript
テキスト
Service Worker registered: JSHandle@object
errorother
テキスト
Notification permission not granted.

HTML

未加工のHTMLページ本文

<!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">&#xF06C;</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>