-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
98 lines (86 loc) · 3.99 KB
/
script.js
File metadata and controls
98 lines (86 loc) · 3.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
document.addEventListener('DOMContentLoaded', () => {
const loadingOverlay = document.getElementById('loading-overlay');
const mainContent = document.getElementById('main-content');
let environmentDetectedAndRedirected = false; // 标记是否已识别并进行了跳转
let detectionTimeoutId; // 用于存储 setTimeout 的 ID
// 函数:显示手动选择选项
function showManualOptions() {
if (!environmentDetectedAndRedirected) {
loadingOverlay.classList.add('fade-out');
loadingOverlay.addEventListener('transitionend', function handler() {
loadingOverlay.classList.add('hidden');
loadingOverlay.removeEventListener('transitionend', handler);
}, { once: true });
mainContent.classList.remove('hidden');
mainContent.classList.add('fade-in-up');
console.log('Timeout triggered, showing manual options.');
} else {
console.log('Timeout callback, but redirect already occurred.');
}
}
// 全局函数:触发动画并跳转到中间页
window.triggerAnimationAndRedirect = function(targetPageName) {
clearTimeout(detectionTimeoutId); // 清除超时,因为已触发跳转
environmentDetectedAndRedirected = true;
console.log('Redirect triggered, clearing timeout.');
// 确保加载层可见并开始动画
loadingOverlay.classList.remove('hidden', 'fade-out');
loadingOverlay.style.opacity = 1;
loadingOverlay.style.visibility = 'visible';
const loadingText = loadingOverlay.querySelector('.loading-text');
if (loadingText) {
loadingText.textContent = '正在为您跳转...';
loadingText.style.animation = 'none';
}
const spinner = loadingOverlay.querySelector('.spinner');
if (spinner) {
spinner.style.transform = 'scale(1.2) rotate(360deg)';
spinner.style.transition = 'transform 0.4s ease-in-out';
}
// 延迟实际跳转,给动画播放时间
setTimeout(() => {
// 始终跳转到中间页面
window.location.href = targetPageName;
console.log(`Redirecting to intermediate page: ${targetPageName}`);
}, 1200); // 1.2秒延迟
};
// 初始环境检测
function detectEnvironment() {
const userAgent = navigator.userAgent || navigator.vendor || window.opera;
let isWeChat = false;
let isAlipay = false;
let isQQ = false; // 新增 QQ 识别变量
if (/MicroMessenger/i.test(userAgent)) {
isWeChat = true;
}
if (/AlipayClient/i.test(userAgent)) {
isAlipay = true;
}
// 识别 QQ 环境:通常包含 "QQ/" 或 "MQQBrowser"
if (/QQ\//i.test(userAgent) || /MQQBrowser/i.test(userAgent)) {
isQQ = true;
}
console.log('User Agent:', userAgent);
console.log('Is WeChat:', isWeChat);
console.log('Is Alipay:', isAlipay);
console.log('Is QQ:', isQQ); // 打印 QQ 识别结果
if (isWeChat) {
console.log('Detected WeChat. Redirecting to wechat_page.html');
triggerAnimationAndRedirect('wechat_page.html');
} else if (isAlipay) {
console.log('Detected Alipay. Redirecting to alipay_page.html');
triggerAnimationAndRedirect('alipay_page.html');
} else if (isQQ) { // 新增 QQ 支付跳转逻辑
console.log('Detected QQ. Redirecting to qq_page.html');
triggerAnimationAndRedirect('qq_page.html');
} else {
console.log('Neither WeChat, Alipay nor QQ detected. Setting timeout for manual options.');
// 如果都不是,则设置超时,超时后显示手动选择按钮
detectionTimeoutId = setTimeout(() => {
showManualOptions();
}, 1500); // 5秒超时
}
}
// 页面加载后立即执行环境检测
detectEnvironment();
});