UNPKG

@mhg/blog

Version:
1 lines 10.1 kB
<!DOCTYPE html><html lang="zh"><head><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="robots" content="noindex, nofollow"><link rel="icon" href="https://unpkg.com/mhg@0.0.0/favicon/favicon_192.png" type="image/x-icon"><title>安全跳转中...</title><style type="text/css">*{box-sizing:border-box}body{overflow:hidden;height:100vh;width:100vw;margin:0;padding:0}.container{display:flex;align-items:center;justify-content:center;height:100%;width:100%;margin:0;padding:20px;flex-direction:column}.avatar,.avatar-placeholder{width:96px;height:96px;border-radius:50%;margin-bottom:16px;display:block}.avatar{display:none}.avatar-placeholder{background:rgba(255,255,255,.18)}.description{font-size:22px;font-weight:600;line-height:1.4}.subtitle{font-size:14px;margin:6px 0 22px;color:#c4c4c4;line-height:1.7}.loading{position:relative;text-align:center;padding:28px;border-radius:26px;animation:fadein .6s ease;width:460px;max-width:calc(100vw - 32px);transition:all .3s ease-in-out}@keyframes fadein{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.content{margin-bottom:18px}.url-text{margin-bottom:12px;font-size:15px;letter-spacing:.4px}.jump-url{position:relative;display:block;margin-top:5px;margin-bottom:22px;padding:16px 68px 16px 16px;border-radius:18px;min-height:58px;text-align:left;word-break:break-all;line-height:1.6;font-size:15px}.jump-url-text{display:block;display:-webkit-box;padding-right:2px;overflow:hidden;text-overflow:ellipsis;line-height:1.6;max-height:3.2em;word-break:break-all;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2}.copy-btn-container{position:absolute;display:flex;align-items:center;justify-content:center;right:10px;top:50%;transform:translateY(-50%);width:44px;height:44px}.copy-toast{position:absolute;top:-34px;right:0;padding:6px 10px;border-radius:999px;font-size:12px;white-space:nowrap;opacity:0;transform:translateY(6px);pointer-events:none;transition:all .2s ease}.loading[data-copy-state=error] .copy-toast,.loading[data-copy-state=success] .copy-toast{opacity:1;transform:translateY(0)}.copy-btn{width:40px;height:40px;border-radius:12px;border:1px solid #a4a4a4;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .25s ease-in-out}.copy-btn-container svg{width:20px;height:20px;fill:currentColor}.countdown-text{margin-top:12px;margin-bottom:0;font-size:13px;line-height:1.7}.countdown-number{display:inline-block;margin:0 2px;font-weight:700}.button-container{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.button{padding:0 20px;border-radius:14px;border:1px solid transparent;cursor:pointer;font-size:15px;font-weight:600;height:44px;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease}.button:hover{transform:translateY(-1px)}.button:active{transform:translateY(0)}.cancel-button{color:#000}.confirm-button{color:#fff}.progress-bar{width:100%;border-radius:999px;overflow:hidden;height:8px;margin-top:16px}.progress{width:100%;height:100%;transition:width 1s linear}@media (prefers-color-scheme:dark){body{background:linear-gradient(135deg,#364f6b,#222831)}.loading{border:1px solid #6d7682;background:rgba(57,62,70,.92);color:#efefef;box-shadow:0 18px 40px rgba(0,0,0,.22)}.loading:hover{box-shadow:0 22px 46px rgba(0,0,0,.28)}.description{color:#f3f3f3}.countdown-text,.url-text{color:#efefef}.jump-url{border:1px solid #737b86;background-color:#333940;color:#efefef}.copy-toast{background:rgba(239,239,239,.95);color:#222831;box-shadow:0 12px 28px rgba(0,0,0,.18)}.copy-btn{background-color:#222831;border-color:#737b86;color:#c8d0da}.copy-btn:hover{color:#fff;box-shadow:0 12px 24px rgba(0,0,0,.18)}.cancel-button{background-color:rgba(135,44,44,.16);color:#ffd5d5;border:1px solid rgba(255,118,118,.12)}.confirm-button{background:linear-gradient(135deg,#28566f,#2f6f90);color:#fff;box-shadow:0 12px 24px rgba(40,86,111,.26)}.progress-bar{background-color:#444}.progress{background-color:#888}}@media (prefers-color-scheme:light){body{background:linear-gradient(135deg,#e9e9e9,#fff)}.loading{border:1px solid #d6d9df;background:rgba(255,255,255,.78);box-shadow:0 18px 40px rgba(0,0,0,.1)}.loading:hover{box-shadow:0 22px 46px rgba(0,0,0,.14)}.url-text{color:#333}.jump-url{border:1px solid #d6dde8;background-color:#f7f9fe;color:#333}.copy-toast{background:rgba(17,24,39,.94);color:#fff;box-shadow:0 12px 28px rgba(15,23,42,.16)}.copy-btn{background-color:#f7f9fe;border-color:#d0d7e2;color:#667085}.copy-btn:hover{color:#334155;box-shadow:0 12px 24px rgba(100,100,100,.14)}.countdown-text{color:#515151}.cancel-button{background-color:#eef5f8;color:#4b5563;border:1px solid #dde7ee}.confirm-button{background:linear-gradient(135deg,#3fc1c9,#38a9b6);color:#fff;box-shadow:0 12px 24px rgba(63,193,201,.24)}.progress-bar{background-color:#ebf0f7}.progress{background-color:#abedd8}}@media (max-width:520px){body{overflow:auto}.container{padding:16px}.loading{padding:22px 18px}.button-container{grid-template-columns:1fr}}</style><script type="text/javascript">function GetQueryString(e){var t=new RegExp("(^|&)"+e+"=([^&]*)(&|$)","i"),n=window.location.search.substr(1).match(t);return n?decodeURI(n[2]):null}function decodeSafeUrlParam(e){if(!e)return e;var t=e.replace(/-/g,"+").replace(/_/g,"/"),n=(4-t.length%4)%4;return n&&(t+="=".repeat(n)),decodeURIComponent(atob(t).split("").map((function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)})).join(""))}let countdown=4,jump_url=GetQueryString("u"),copyToastTimer=null;try{jump_url=decodeSafeUrlParam(jump_url)}catch(e){jump_url=null}const UrlReg=/^(http|https|thunder|qqdl|ed2k|Flashget|qbrowser|ftp|rtsp|mms):\/\//i;let progressElement,countdownElement,countdownTextElement,jumpUrlElement,loadingElement;function updateCopyToast(e,t){loadingElement&&(loadingElement.setAttribute("data-copy-state",e),document.getElementById("copy-toast").textContent=t,copyToastTimer&&clearTimeout(copyToastTimer),"success"!==e&&"error"!==e||(copyToastTimer=setTimeout((function(){loadingElement.setAttribute("data-copy-state","idle")}),1600)))}function updateCountdown(){if(countdown<0)return countdownTextElement.textContent="💡请自行确认链接安全后再继续跳转",void(progressElement&&(progressElement.style.width="100%"));countdownElement.textContent=countdown,progressElement&&(progressElement.style.width=countdown/4*100+"%"),0===countdown?jump():(countdown--,setTimeout(updateCountdown,1e3))}function jump(){location.href=jump_url}function closeWindow(){/MicroMessenger/i.test(navigator.userAgent)?"undefined"!=typeof WeixinJSBridge?WeixinJSBridge.call("closeWindow"):document.addEventListener("WeixinJSBridgeReady",(function(){WeixinJSBridge.call("closeWindow")}),!1):/QQ/i.test(navigator.userAgent)&&!/MicroMessenger/i.test(navigator.userAgent)?"undefined"!=typeof mqq&&mqq.ui&&mqq.ui.closeWebView?mqq.ui.closeWebView():window.history.back():(window.opener=null,window.open("","_self"),window.close())}function fallbackCopyText(e){const t=document.createElement("input");t.value=e,document.body.appendChild(t),t.select(),t.setSelectionRange(0,e.length);const n=document.execCommand("copy");if(document.body.removeChild(t),!n)throw new Error("copy failed")}function copyToClipboard(){const e=document.getElementById("jump-url-text").textContent;if(e)if(navigator.clipboard&&navigator.clipboard.writeText)navigator.clipboard.writeText(e).then((function(){updateCopyToast("success","复制成功")})).catch((function(){try{fallbackCopyText(e),updateCopyToast("success","复制成功")}catch(e){updateCopyToast("error","复制失败")}}));else try{fallbackCopyText(e),updateCopyToast("success","复制成功")}catch(e){updateCopyToast("error","复制失败")}else updateCopyToast("error","暂无可复制内容")}async function loadAvatar(){const e=document.querySelector(".avatar"),t=document.querySelector(".avatar-placeholder"),n=new Image;n.src="https://unpkg.com/mhg@0.0.0/favicon/favicon_192.png",n.onload=function(){e.src=n.src,e.style.display="block",t.style.display="none"}}jump_url&&UrlReg.test(jump_url)||(document.title="参数错误,正在返回首页...",jump_url=location.origin),window.addEventListener("load",(function(){loadAvatar(),loadingElement=document.querySelector(".loading"),progressElement=document.getElementById("progress"),countdownElement=document.getElementById("countdown"),countdownTextElement=document.querySelector(".countdown-text"),jumpUrlElement=document.getElementById("jump-url-text"),jumpUrlElement.textContent=jump_url,updateCountdown()}))</script></head><body><div class="container"><div class="avatar-placeholder"></div> <img src="" alt="头像" class="avatar"><div class="description">MHuiG</div><div class="subtitle">安全中心</div><div class="loading" data-copy-state="idle"><div class="content"><div class="url-text">您即将离开本站,跳转到:</div><div class="jump-url" id="jump-url"><span class="jump-url-text" id="jump-url-text"></span><div class="copy-btn-container"> <span class="copy-toast" id="copy-toast">复制成功</span> <button class="copy-btn" onclick="copyToClipboard()" aria-label="复制链接"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M208 0 332.1 0c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9L448 336c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48zM48 128l80 0 0 64-64 0 0 256 192 0 0-32 64 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 176c0-26.5 21.5-48 48-48z"/></svg></button></div></div></div><div class="countdown-text">⚡将在<span class="countdown-number" id="countdown"></span>秒后跳转,请自行确认链接安全性</div><div class="progress-bar"><div class="progress" id="progress"></div></div><div class="button-container"> <button class="button cancel-button" onclick="closeWindow()">取消跳转</button> <button class="button confirm-button" onclick="jump()">立即跳转</button></div></div></div></body></html>