Advertisement
ur001

Untitled

Mar 15th, 2025
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 5 1.69 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="ru">
  3. <body>
  4.     <h1>Калькулятор из URL-хэша</h1>
  5.     <div id="result"></div>
  6.  
  7.     <script>
  8.         // Считалка из хэша
  9.         function calculateFromHash() {
  10.             // Получение строки из  хэша
  11.             const hash = window.location.hash.substr(1);
  12.  
  13.             try {
  14.                 const {x, y} = parseHashData(hash);
  15.                 displayResults(`Результат: ${x} + ${y} = ${x + y}`);
  16.             } catch (e) {
  17.                 displayResults(e.message);
  18.             }
  19.         }
  20.  
  21.         // Разбор данных из хэша
  22.         function parseHashData(hash) {
  23.             if (!hash) throw new Error('Добавьте в URL параметры в формате #x;y');
  24.  
  25.             const values = hash.split(';');
  26.             if (values.length !== 2) throw new Error('Нужно ровно два значения, разделённых точкой с запятой');
  27.  
  28.             const x = Number(values[0]);
  29.             const y = Number(values[1]);
  30.             if (isNaN(x) || isNaN(y)) throw new Error('Оба параметра должны быть числами');
  31.  
  32.             return { x, y };
  33.         }
  34.  
  35.         // Отображение результатов
  36.         function displayResults(text) {
  37.             const resultDiv = document.getElementById('result');
  38.             resultDiv.textContent = text;
  39.         }
  40.  
  41.         // Инициализация обработчиков событий
  42.         window.addEventListener('DOMContentLoaded', calculateFromHash);
  43.         window.addEventListener('hashchange', calculateFromHash);
  44.     </script>
  45. </body>
  46. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement