0
总信号
0
爆棚股
📈 股票名称 ↕ 🔥 热度 ↕ 👤 贡献人 ↕ 🎯 推荐人 ↕ ⏰ 推荐时间 ↕ 💡 核心逻辑 🏷️ 标签 操作
⚡ 正在加载股票数据... ⚡
⚡ 正在加载段子... ⚡
cument.onkeydown = function(e) { if (e.key === 'Escape') { closeModal(); } }; // 初始化 loadData(); // 初始化股票搜索补全 const stockAutocomplete = new StockAutocomplete('global-search', (name, code, action) => { if (action === 'search') { // 自动触发搜索 renderStockTable(); renderDuanzis(); } console.log(`🎯 选择股票: ${name} (${code}), 动作: ${action}`); }); // ===== PWA Service Worker 注册 ===== if ('serviceWorker' in navigator) { window.addEventListener('load', () => { navigator.serviceWorker.register('/sw.js') .then((registration) => { console.log('[PWA] Service Worker 注册成功:', registration.scope); }) .catch((error) => { console.log('[PWA] Service Worker 注册失败:', error); }); }); } // ===== PWA 安装提示 ===== let deferredPrompt; const installBanner = document.createElement('div'); installBanner.id = 'pwa-install-banner'; installBanner.innerHTML = `
添加到主屏幕,像App一样使用
`; document.body.appendChild(installBanner); // 样式 const pwaStyle = document.createElement('style'); pwaStyle.textContent = ` #pwa-install-banner { position: fixed; bottom: 0; left: 0; right: 0; background: linear-gradient(135deg, rgba(0,245,255,0.95), rgba(157,0,255,0.95)); color: #fff; padding: 12px 16px; z-index: 10000; transform: translateY(100%); transition: transform 0.3s ease; display: none; backdrop-filter: blur(10px); } #pwa-install-banner.show { transform: translateY(0); display: block; } .pwa-install-content { display: flex; align-items: center; justify-content: center; gap: 12px; max-width: 600px; margin: 0 auto; } .pwa-install-icon { font-size: 24px; } .pwa-install-text { flex: 1; font-size: 14px; font-weight: 500; } .pwa-install-btn { background: #fff; color: #0a0f1e; border: none; padding: 8px 20px; border-radius: 20px; font-weight: bold; cursor: pointer; font-size: 14px; } .pwa-install-close { background: transparent; border: none; color: #fff; font-size: 20px; cursor: pointer; padding: 0 4px; } @media (max-width: 480px) { .pwa-install-text { font-size: 12px; } .pwa-install-btn { padding: 6px 14px; font-size: 12px; } } `; document.head.appendChild(pwaStyle); // 监听安装事件 window.addEventListener('beforeinstallprompt', (e) => { e.preventDefault(); deferredPrompt = e; installBanner.classList.add('show'); }); // 安装按钮 document.getElementById('pwa-install-btn').addEventListener('click', async () => { if (deferredPrompt) { deferredPrompt.prompt(); const { outcome } = await deferredPrompt.userChoice; if (outcome === 'accepted') { console.log('[PWA] 用户接受了安装'); } deferredPrompt = null; installBanner.classList.remove('show'); } }); // 关闭按钮 document.getElementById('pwa-install-close').addEventListener('click', () => { installBanner.classList.remove('show'); localStorage.setItem('pwa-install-dismissed', Date.now()); }); // 检测是否已安装 if (window.matchMedia('(display-mode: standalone)').matches) { console.log('[PWA] 正在以独立模式运行'); } // 检查是否应该显示安装提示 const dismissed = localStorage.getItem('pwa-install-dismissed'); if (dismissed && Date.now() - parseInt(dismissed) < 7 * 24 * 60 * 60 * 1000) { installBanner.style.display = 'none'; } console.log('[PWA] 初始化完成'); ove('active'); document.body.style.overflow = ''; console.log('✅ 弹窗已关闭'); } function openModal() { const modal = document.getElementById('modal'); modal.classList.add('active'); document.body.style.overflow = 'hidden'; } // 绑定关闭事件 - 使用onclick确保可靠 document.getElementById('modal-close').onclick = function(e) { e.stopPropagation(); closeModal(); }; // 点击遮罩层关闭 document.getElementById('modal').onclick = function(e) { if (e.target === this) { closeModal(); } }; // ESC键关闭 document.onkeydown = function(e) { if (e.key === 'Escape') { closeModal(); } }; // 初始化 loadData(); // 初始化股票搜索补全 const stockAutocomplete = new StockAutocomplete('global-search', (name, code, action) => { if (action === 'search') { // 自动触发搜索 renderStockTable(); renderDuanzis(); } console.log(`🎯 选择股票: ${name} (${code}), 动作: ${action}`); }); // ===== PWA Service Worker 注册 ===== if ('serviceWorker' in navigator) { window.addEventListener('load', () => { navigator.serviceWorker.register('/sw.js') .then((registration) => { console.log('[PWA] Service Worker 注册成功:', registration.scope); }) .catch((error) => { console.log('[PWA] Service Worker 注册失败:', error); }); }); } // ===== PWA 安装提示 ===== let deferredPrompt; const installBanner = document.createElement('div'); installBanner.id = 'pwa-install-banner'; installBanner.innerHTML = `
添加到主屏幕,像App一样使用
`; document.body.appendChild(installBanner); // 样式 const pwaStyle = document.createElement('style'); pwaStyle.textContent = ` #pwa-install-banner { position: fixed; bottom: 0; left: 0; right: 0; background: linear-gradient(135deg, rgba(0,245,255,0.95), rgba(157,0,255,0.95)); color: #fff; padding: 12px 16px; z-index: 10000; transform: translateY(100%); transition: transform 0.3s ease; display: none; backdrop-filter: blur(10px); } #pwa-install-banner.show { transform: translateY(0); display: block; } .pwa-install-content { display: flex; align-items: center; justify-content: center; gap: 12px; max-width: 600px; margin: 0 auto; } .pwa-install-icon { font-size: 24px; } .pwa-install-text { flex: 1; font-size: 14px; font-weight: 500; } .pwa-install-btn { background: #fff; color: #0a0f1e; border: none; padding: 8px 20px; border-radius: 20px; font-weight: bold; cursor: pointer; font-size: 14px; } .pwa-install-close { background: transparent; border: none; color: #fff; font-size: 20px; cursor: pointer; padding: 0 4px; } @media (max-width: 480px) { .pwa-install-text { font-size: 12px; } .pwa-install-btn { padding: 6px 14px; font-size: 12px; } } `; document.head.appendChild(pwaStyle); // 监听安装事件 window.addEventListener('beforeinstallprompt', (e) => { e.preventDefault(); deferredPrompt = e; installBanner.classList.add('show'); }); // 安装按钮 document.getElementById('pwa-install-btn').addEventListener('click', async () => { if (deferredPrompt) { deferredPrompt.prompt(); const { outcome } = await deferredPrompt.userChoice; if (outcome === 'accepted') { console.log('[PWA] 用户接受了安装'); } deferredPrompt = null; installBanner.classList.remove('show'); } }); // 关闭按钮 document.getElementById('pwa-install-close').addEventListener('click', () => { installBanner.classList.remove('show'); localStorage.setItem('pwa-install-dismissed', Date.now()); }); // 检测是否已安装 if (window.matchMedia('(display-mode: standalone)').matches) { console.log('[PWA] 正在以独立模式运行'); } // 检查是否应该显示安装提示 const dismissed = localStorage.getItem('pwa-install-dismissed'); if (dismissed && Date.now() - parseInt(dismissed) < 7 * 24 * 60 * 60 * 1000) { installBanner.style.display = 'none'; } console.log('[PWA] 初始化完成'); = function(e) { if (e.key === 'Escape') { closeModal(); } }; // 初始化 loadData(); // 初始化股票搜索补全 const stockAutocomplete = new StockAutocomplete('global-search', (name, code, action) => { if (action === 'search') { // 自动触发搜索 renderStockTable(); renderDuanzis(); } console.log(`🎯 选择股票: ${name} (${code}), 动作: ${action}`); }); // ===== PWA Service Worker 注册 ===== if ('serviceWorker' in navigator) { window.addEventListener('load', () => { navigator.serviceWorker.register('/sw.js') .then((registration) => { console.log('[PWA] Service Worker 注册成功:', registration.scope); }) .catch((error) => { console.log('[PWA] Service Worker 注册失败:', error); }); }); } // ===== PWA 安装提示 ===== let deferredPrompt; const installBanner = document.createElement('div'); installBanner.id = 'pwa-install-banner'; installBanner.innerHTML = `
添加到主屏幕,像App一样使用
`; document.body.appendChild(installBanner); // 样式 const pwaStyle = document.createElement('style'); pwaStyle.textContent = ` #pwa-install-banner { position: fixed; bottom: 0; left: 0; right: 0; background: linear-gradient(135deg, rgba(0,245,255,0.95), rgba(157,0,255,0.95)); color: #fff; padding: 12px 16px; z-index: 10000; transform: translateY(100%); transition: transform 0.3s ease; display: none; backdrop-filter: blur(10px); } #pwa-install-banner.show { transform: translateY(0); display: block; } .pwa-install-content { display: flex; align-items: center; justify-content: center; gap: 12px; max-width: 600px; margin: 0 auto; } .pwa-install-icon { font-size: 24px; } .pwa-install-text { flex: 1; font-size: 14px; font-weight: 500; } .pwa-install-btn { background: #fff; color: #0a0f1e; border: none; padding: 8px 20px; border-radius: 20px; font-weight: bold; cursor: pointer; font-size: 14px; } .pwa-install-close { background: transparent; border: none; color: #fff; font-size: 20px; cursor: pointer; padding: 0 4px; } @media (max-width: 480px) { .pwa-install-text { font-size: 12px; } .pwa-install-btn { padding: 6px 14px; font-size: 12px; } } `; document.head.appendChild(pwaStyle); // 监听安装事件 window.addEventListener('beforeinstallprompt', (e) => { e.preventDefault(); deferredPrompt = e; installBanner.classList.add('show'); }); // 安装按钮 document.getElementById('pwa-install-btn').addEventListener('click', async () => { if (deferredPrompt) { deferredPrompt.prompt(); const { outcome } = await deferredPrompt.userChoice; if (outcome === 'accepted') { console.log('[PWA] 用户接受了安装'); } deferredPrompt = null; installBanner.classList.remove('show'); } }); // 关闭按钮 document.getElementById('pwa-install-close').addEventListener('click', () => { installBanner.classList.remove('show'); localStorage.setItem('pwa-install-dismissed', Date.now()); }); // 检测是否已安装 if (window.matchMedia('(display-mode: standalone)').matches) { console.log('[PWA] 正在以独立模式运行'); } // 检查是否应该显示安装提示 const dismissed = localStorage.getItem('pwa-install-dismissed'); if (dismissed && Date.now() - parseInt(dismissed) < 7 * 24 * 60 * 60 * 1000) { installBanner.style.display = 'none'; } console.log('[PWA] 初始化完成');