Files
vue-ts-example-2025/index.html
严浩 bd9acc06a8
All checks were successful
CI/CD Pipeline / playwright (push) Successful in 4m20s
CI/CD Pipeline / build-and-deploy (push) Successful in 4m21s
测试最新依赖 / build-and-test (push) Successful in 2m10s
测试最新依赖 / playwright (push) Successful in 2m15s
feat(vite-plugins): 添加 vant-touch-emulator 和 eruda 脚本支持
2025-11-03 01:16:27 +08:00

167 lines
4.4 KiB
HTML

<!doctype html>
<html lang="zh-CN" data-build-time="%VITE_APP_BUILD_TIME%" data-commit="%VITE_APP_BUILD_COMMIT%">
<head>
<meta charset="UTF-8" />
<!-- <link rel="icon" href="data:;base64,iVBORw0KGgo=" /> -->
<link rel="icon" href="/favicon.ico" />
<!-- viewport-fit=cover, -->
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"
/>
<meta name="color-scheme" content="light dark" />
<meta name="format-detection" content="telephone=no" />
<title>%VITE_APP_TITLE%</title>
<style type="text/css">
*,
::before,
::after {
box-sizing: border-box;
}
html,
body,
#app {
height: 100%;
}
html,
body {
margin: 0;
padding: 0;
}
body {
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
</style>
<style type="text/css">
#app {
min-height: 100vh;
}
@supports (min-height: 100dvh) {
#app {
min-height: 100dvh;
}
}
</style>
</head>
<body>
<div id="app">
<style type="text/css">
@keyframes spin {
to {
transform: rotate(360deg);
}
}
.app-loading-spinner {
width: 40px;
height: 40px;
border: 3px solid rgba(0, 0, 0, 0.08);
border-top-color: #333;
border-radius: 50%;
animation: spin 0.8s linear infinite;
}
@media (prefers-color-scheme: dark) {
body {
background-color: #0f0f0f;
}
.app-loading-spinner {
border: 3px solid rgba(255, 255, 255, 0.1);
border-top-color: #e5e5e5;
}
}
</style>
<div
class="app-loading"
style="
display: flex;
align-items: center;
justify-content: center;
min-height: 100vh;
min-height: 100dvh;
"
>
<div class="app-loading-spinner"></div>
</div>
</div>
<script type="module" src="/src/main.ts"></script>
<!-- <script src="https://testingcf.jsdelivr.net/npm/@vant/touch-emulator/dist/index.min.js"></script> -->
<!-- .min.js 是 jsDelivr 的特殊处理 -->
<!-- <script src="https://unpkg.luckincdn.com/@vant/touch-emulator@1.4.0/dist/index.js"></script> -->
<script>
window.addEventListener('DOMContentLoaded', function () {
window.ontouchstart = function () {};
window.ontouchend = function () {};
});
window.onloadX = function () {
// 禁止双指缩放
document.addEventListener('touchstart', function (event) {
if (event.touches.length > 1) {
event.preventDefault();
}
});
// 禁止双击放大
var lastTouchEnd = 0;
document.addEventListener(
'touchend',
function (event) {
var now = new Date().getTime();
if (now - lastTouchEnd <= 300) {
event.preventDefault();
}
lastTouchEnd = now;
},
false,
);
// 禁止手势事件
document.addEventListener('gesturestart', function (event) {
event.preventDefault();
});
};
</script>
<script>
(function (d) {
var config = {
kitId: 'whk2tto',
scriptTimeout: 3000,
async: true,
},
h = d.documentElement,
t = setTimeout(function () {
h.className = h.className.replace(/\bwf-loading\b/g, '') + ' wf-inactive';
}, config.scriptTimeout),
tk = d.createElement('script'),
f = false,
s = d.getElementsByTagName('script')[0],
a;
h.className += ' wf-loading';
tk.src = 'https://use.typekit.net/' + config.kitId + '.js';
tk.async = true;
tk.onload = tk.onreadystatechange = function () {
a = this.readyState;
if (f || (a && a != 'complete' && a != 'loaded')) return;
f = true;
clearTimeout(t);
try {
Typekit.load(config);
} catch (e) {}
};
s.parentNode.insertBefore(tk, s);
}); /* (document) */
</script>
</body>
</html>