diff --git a/index.html b/index.html index 5a537b3..569836a 100644 --- a/index.html +++ b/index.html @@ -80,6 +80,7 @@ 调试日志 + @@ -134,6 +135,56 @@ el('dbgClose').addEventListener('click', function () { el('dbgPanel').classList.remove('open'); }); el('dbgClear').addEventListener('click', function () { el('dbgLog').innerHTML = ''; dbgCount = 0; el('dbgCount').textContent = ''; }); + // 复制日志:拼纯文本(时间 + 内容),Clipboard API 优先,失败/不可用则降级 execCommand + function copyWithFallback(text) { + try { + var ta = document.createElement('textarea'); + ta.value = text; ta.style.position = 'fixed'; ta.style.opacity = '0'; + document.body.appendChild(ta); ta.select(); + var ok2 = document.execCommand('copy'); + document.body.removeChild(ta); + return !!ok2; + } catch (e) { + return false; + } + } + // 终极大兜底:两种 API 都失败时,弹出一个可全选/长按的文本区让用户手动复制 + function manualCopy(text) { + dbg('自动复制不可用,弹出文本区请长按/全选复制 ↓', 'warn'); + var box = el('dbgManual'); + if (!box) { + box = document.createElement('div'); + box.id = 'dbgManual'; + box.style.cssText = 'position:fixed;left:10px;right:10px;top:10px;z-index:300;background:#fff;border:2px solid #F4593C;border-radius:12px;padding:10px;box-shadow:0 6px 20px rgba(0,0,0,.3);max-height:70vh;display:flex;flex-direction:column'; + box.innerHTML = '