PageSourceSearch

https://smartkintai.ai/

html smartkintai.ai collected 2026-10-05 15:05:51 UTC 2,819 bytes, 67 lines download raw bytes

1<!DOCTYPE html>
2<html lang="ja">
3
4<head>
5  <meta charset="UTF-8">
6  <link rel="icon" type="image/svg+xml" href="/icons/icon.svg">
7  <link rel="apple-touch-icon" href="/icons/apple-touch-icon.png">
8  <link rel="manifest" href="/manifest.json">
9  <meta name="viewport" content="width=device-width, initial-scale=1.0">
10  <meta name="description" content="Smart勤怠 - クラウド型SaaS勤怠管理システム">
11  <meta name="theme-color" content="#003f8e">
12  <meta name="apple-mobile-web-app-capable" content="yes">
13  <meta name="apple-mobile-web-app-status-bar-style" content="default">
14  <meta name="apple-mobile-web-app-title" content="Smart勤怠">
15  <meta name="mobile-web-app-capable" content="yes">
16  <meta name="apple-touch-fullscreen" content="yes">
17  <title>Smart勤怠</title>
18
19  <!-- PWA動的マニフェスト早期初期化スクリプト(サブドメイン対応) -->
20  
20<script>
21    (function() {
22      try {
23        const hostname = window.location.hostname;
24        const subdomain = hostname.match(/^([^.]+)\./)?.[1];
25        
26        // サブドメインからテナント情報を検出
27        if (subdomain && subdomain !== 'www' && subdomain !== 'smartkintai') {
28          // サブドメインを保存(後でAPIでテナントIDに変換)
29          localStorage.setItem('pwa_tenant_subdomain', subdomain);
30          console.log('🔷 Subdomain detected:', subdomain);
31          
32          // 既存のテナントIDがあれば削除(サブドメインから再取得)
33          if (!localStorage.getItem('pwa_tenant_id_for_subdomain_' + subdomain)) {
34            localStorage.removeItem('pwa_tenant_id');
35          }
36        } else {
37          // サブドメインがない場合、クエリパラメータから取得
38          const urlParams = new URLSearchParams(window.location.search);
39          const tenantId = urlParams.get('tenant') || urlParams.get('tenantId');
40          
41          if (tenantId) {
42            // テナントIDを即座にlocalStorageに保存
43            localStorage.setItem('pwa_tenant_id', tenantId);
44            console.log('🔷 Tenant ID from query param stored:', tenantId);
45          } else {
46            // localStorageから復元を試行
47            const storedTenantId = localStorage.getItem('pwa_tenant_id');
48            if (storedTenantId) {
49              console.log('🔄 Stored tenant ID found:', storedTenantId);
50            }
51          }
52        }
53      } catch (error) {
54        console.error('❌ Early initialization error:', error);
55        // エラー時もページロードは継続
56      }
57    })();
58  </script>
58
59  
59<script type="module" crossorigin src="/assets/index-C6DB0I7I.js"></script>
59
60  <link rel="stylesheet" crossorigin href="/assets/index-CpYfyQo1.css">
61</head>
62
63<body>
64  <div id="app"></div>
65</body>
66
67</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.