1<!DOCTYPE html> 2<html lang="zh-CN"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1"> 6 7 8 <title> 9 æ æ´ </title> 10 11 12 <meta name="keywords" content="ç èæ æ´, æ æå¾è¯, æ ç»ªéæ¾, å¿äºå享, ç½ç»æ æ´, æ æäº¤æµ, ç§å¯å享, å¿æ å¾è¯"/> 13 <meta name="description" content="ç èæ æ´æ¯å¾è¯ä¸æ ç»ªéæ¾çæ¸©æè§è½ï¼ç¨æ·å¯æ ææ æå享å¿äºåç§å¯ï¼å¯»æ¾å ±é¸£ï¼éæ¾ååï¼åçå®çèªå·±ã"/> 14 15 <link rel="canonical" href="https://jandan.net/treehole" /> 16 17 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 18 <meta name="renderer" content="webkit"> 19 20 21 <meta name="robots" content="index,follow"> 22 23 <!-- 徿 åº --> 24 <link rel="apple-touch-icon" href="data:image/png;base64,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"> 25 <link rel="shortcut icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz6///M+v//zPr//8z6///M+v//zPr//84Zf//OGX//zhl//84Zf//M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///OGX//zhl//84Zf//OGX//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zhl//84Zf//OGX//zhl//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zM0Nv8zNDb/M+v//zPr//8z6///M+v//zPr//8z6///MzQ2/zM0Nv8z6///M+v//zPr//8z6///M+v//zPr//8zNDb/MzQ2/zPr//8z6///M+v//zPr//8z6///M+v//zM0Nv8zNDb/M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M9n//zPZ//8z2f//M9n//zPr//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M9n//zPZ//8z2f//M9n//wAAAAAAAAAAAAAAADPZ//8z6///M+v//zPr//8z6///M+v//zPr//8z6///M+v//zPZ//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz2f//M9n//zPZ//8z2f//M9n//zPZ//8z2f//M9n//zPZ//8z2f//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADc14/83NeP/NzXj/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3NeP/NzXj/zc14/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzXj/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgBwAA4AcAAP4/AAD+PwAA/v8AAA=="/> 26 27 28 <!-- css åº --> 29 <link href="//cdn.jandan.net/static/css/bootstrap/5.1.3/bootstrap.min.css" type="text/css" rel="stylesheet" /> 30 <link href="//cdn.jandan.net/static/css/bootstrap-icons/1.13.1/font/bootstrap-icons.min.css" type="text/css" rel="stylesheet" /> 31 <link rel="stylesheet" href="/wp-content/themes/jandan2025/static/20260911090541/aa42d365f5ef0734b1ef03325c18d4b8tKyVlmma.css"> 32 33 <!-- èªå®ä¹JS --> 34
34<script> 35 36 // å¼å¯é»ææ¨¡å¼ 37 if (localStorage.getItem('darkMode') === 'true') { 38 document.documentElement.classList.add('dark-model'); 39 } 40 41 const $JANDAN = { 42 GO_API: false, 43 IS_MOBILE : false, 44 COOKIE_HASH : '01b0531fab6a989460dd1b231010b496', 45 SITE_URL : 'http://jandan.net', 46 API_URL : '//jandan.net' 47 }; 48 if (window !== top) top.location.href = window.location.href; 49 eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(g(){1 d=["j","a","0","d","a","0",".","0","e","f"];1 3=7 8(d.2(\'\')+\'$\');4(!3.9(b.c)){1 a=5.6.h;4(a==\'/\'){a=\'\'}5.6.i=\'k://\'+d.2(\'\')+\'/\'+a}})($l);',22,22,'n|var|join|r|if|window|location|new|RegExp|test||document|domain|||t|function|pathname|href||http|JANDAN'.split('|'),0,{})); 50 </script>
50 51</head> 52<body> 53<!-- å ¨ç«å®¹å¨ --> 54<div class="container wrapper p-0" id="main-warpper"> 55<header class="text-white text-center position-relative" id="header"> 56 <div class="logo"> 57 <a href="/"> 58 <span class="logo-container"></span> 59 </a> 60 <div class="header-actions position-absolute"> 61 <a class="header-notice" href="/new/member/message"> 62 <i class="bi bi-envelope"></i><span class="notice_num">20</span> 63 </a> 64 <a class="header-user" href="/new/member"> 65 <i class="bi bi-person-fill d-md-none"></i> 66 <span class="d-none d-md-inline-block">ç¨æ·ä¸å¿</span> 67 </a> 68 <span class="header-model-btn model-btn"> 69 <i class="bi bi-moon-fill"></i> 70 </span> 71 </div> 72 </div> 73</header> 74<nav id="nav"> 75 <div class="container"> 76 <div class="position-relative navbar navbar-level1"> 77 <!-- 主导èªåmore-menuå®¹å¨ --> 78 <div class="d-flex align-items-center flex-grow-1"> 79 <ul class="align-middle main-nav"> 80 <li class="nav-item"><a class="nav-link p-1 " href="/" id="nav-0">é¦é¡µ</a></li> 81 <!-- <li class="nav-item d-none d-sm-block"><a class="nav-link p-1 " href="/qa" id="nav-88399">é®ç</a></li> --> 82 <li class="nav-item"><a class="nav-link p-1 current" href="/treehole" id="nav-102312">æ æ´</a></li> 83 <li class="nav-item d-none d-sm-block"><a class="nav-link p-1 " href="/beauty" id="nav-108629">å¥³è£ </a></li> 84 <li class="nav-item d-none d-sm-block"><a class="nav-link p-1 " href="/ooxx" id="nav-21183">éææ</a></li> 85 <li class="nav-item"><a class="nav-link p-1 " href="/pic" id="nav-26402">æ èå¾</a></li> 86 <li class="nav-item "><a class="nav-link p-1 " href="/new/forum" id="nav-112928">é±¼å¡</a></li> 87 <li class="nav-item"><a class="nav-link p-1 " href="/top" id="nav-76694">çæ¦</a></li> 88 <li class="nav-item"><a class="nav-link p-1" href="/new/daily">æ¥æ¥</a></li> 89 <li class="nav-item"><a class="nav-link p-1 " href="/tucao" id="nav-21221">大忧½</a></li> 90 <li class="nav-item d-none d-sm-block"><a class="nav-link p-1" href="https://reader.jandan.net" id="nav-21221">é 读å¨</a></li> 91 <li class="nav-item d-block d-sm-none align-middle" id="nav-more"><a class="nav-link p-1" href="javascript:;"><i class="bi bi-three-dots"></i></a></li> 92 </ul> 93 </div> 94 95 </div> 96 <div class="position-relative navbar d-none navbar-level2"> 97 <!-- 主导èªåmore-menuå®¹å¨ --> 98 <div class="d-flex align-items-center flex-grow-1"> 99 <ul class="align-middle main-nav"> 100 101 </ul> 102 </div> 103 </div> 104 </div> 105</nav> 106 <div class="container"> 107 <div class="row"> 108 <!-- 主å 容åºå --> 109 <main class="main col-lg-8 col-md-8 col-12"> 110 <div class="row"> 111 <nav aria-label="breadcrumb" class="breadcrumb"> 112 <ol> 113 <li class="breadcrumb-item"><a href="/">主页</a></li> 114 <li class="breadcrumb-item active" aria-current="page">æ æ´</li> 115 </ol> 116 </nav> 117 </div> 118 <div class="row"> 119 <div class="p-0"> 120 <h1 class="post-h1 p-2">æ æ´</h1> 121 </div> 122 <div class="post"> 123 <div class="post-content"> 124 <h5>âæ¯ä¸ªäººé½éè¦ä¸ä¸ªæ æ´ï¼åæ¾é£äºæ æ³è¨è¯´çç§å¯åæ 绪â</h5> 125<p>å¨ç èæ æ´ï¼ä½ å¯ä»¥è¡¨è¾¾å¿äºãå¾è¯ç¦æ¼ãåæ³æ ç»ªï¼æ¾å°çè§£ä¸å ±é¸£ç声é³ï¼æ éä¼ªè£ ï¼åçå®çèªå·±</p> 126<blockquote data-nosnippet><p> 127妿æ 绪éè¦å®£æ³ï¼å¿çé®é¢éè¦ç导<br /> 128å ¨å½ç»ä¸å¿çæ´å©ç线çµè¯å·ç 12356 129</p></blockquote> 130 </div> 131 </div> 132 </div> 133 <div class="row"> 134 <div></div> 135 <div class="comment" id="jandan-app"></div> 136 </div> 137 138
138<script> 139 const PAGE = { 140 id: 102312 }; 141 </script>
141 142 </main> 143 <!-- ä¾§è¾¹æ --> 144 <!-- ä¾§è¾¹æ --> 145 <aside class="col-lg-4 col-md-4 d-none d-md-block sidebar"> 146 <div class="row"> 147 <div class="search-form"> 148 149 <form action="https://www.bing.com/search" method="get" onsubmit="_submit()" id="searchform" target="_blank"> 150 <input type="text" name="q" id='bingsearch' onfocus="_onfocus()" value="" placeholder="æç´¢ï¼" required> 151 <input type="hidden" name="site" value="jandan.net"> 152 </form> 153
153<script> 154 function _submit() { 155 document.getElementById("bingsearch").value = document.getElementById("bingsearch").value + ' site:jandan.net'; 156 } 157 158 function _onfocus() { 159 document.getElementById("bingsearch").value = ''; 160 } 161 </script>
161 162 </div> 163 </div> 164 165 <div class="row"> 166 <h3 class="nav-header">å¨è¾¹</h3> 167 <div class="text"> 168 <a href="https://item.taobao.com/item.htm?id=1076906538728"><img src="/static/tg/wangmoyu_02.png" alt="ç èå¨è¾¹" style="width: 100%;"></a> 169 </div> 170 </div> 171 172 173 <div class="row"> 174 <h3 class="nav-header">æ°åè½</h3> 175 <div class="text"> 176 <a href="https://reader.jandan.net"><img src="/static/tg/ereader-01.png" alt="ç èçµå书é 读å¨" style="width: 100%;"></a> 177 </div> 178 </div> 179 180 181 <div class="row"> 182 <h3 class="nav-header">ç«å¡å ¬å</h3> 183 <div class="text"> 184 <ul> 185 <li>* <a href="/p/123743">ç èæ¥æ¥ä¸çº¿å¼æ¾æµè¯</a></li> 186 <li>* <a href="/ereader">ç èçµå书é 读å¨ä¸çº¿æµè¯</a></li> 187 <li>* <a href="/t/6180514">ç èç½é®çååºå ³ééç¥</a></li> 188 <li>* <a href="/rule">ç èç½ç¤¾åºç®¡çè§å®</a></li> 189 <li>* <a href="/official-channels">ç èç½å®æ¹æ¸ éå ¬ç¤º</a></li> 190 </ul> 191 </div> 192 </div> 193 <div class="row"> 194 <h3 class="nav-header">ç èä¼ éé¨</h3> 195 <div class="text"> 196 <ul> 197 <li>* åé¦ï¼[email protected]</li> 198 <li>* æç¨¿ï¼<a href="/app">微信å°ç¨åºç è(æ«ç )</a></li> 199 <li>* APPï¼<a href="https://jandan.net/app">jandan.net/app</a></li> 200 <li>* å ¬ä¼å·ï¼çæ¸é±¼</li> 201 </ul> 202 </div> 203 </div> 204 <div class="row"> 205 <h3 class="nav-header">é±¼å¡</h3> 206 <div id="sidebar-bbs"></div> 207
207<script type="text/html" id="sidebar-bbs-tpl"> 208 <ul class="bbs-list"> 209 {{each list}} 210 {{if $index <= 10}} 211 <li><a href="/new/forum/topic/{{$value.post_id}}">* {{$value.title}} </a></li> 212 {{/if}} 213 {{/each}} 214 </ul> 215 </script>
215 216 </div> 217 <div class="row"> 218 219 <div id="float-window"> 220 <h3 class="nav-header">广å</h3> 221 <div class="text text-center"> 222
222<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4352453996606420" 223 crossorigin="anonymous"></script>
223 224<!-- square-banner --> 225<ins class="adsbygoogle" 226 style="display:block" 227 data-ad-client="ca-pub-4352453996606420" 228 data-ad-slot="7001170194" 229 data-ad-format="auto" 230 data-full-width-responsive="true"></ins>
231<script> 232 (adsbygoogle = window.adsbygoogle || []).push({}); 233</script>
233<span class="dot" data-id="233"></span> </div> 234 <h3 class="nav-header">广å</h3> 235 <div class="text text-center"> 236
236<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4352453996606420" crossorigin="anonymous"></script>
236 237<!-- 300x250 --> 238<ins class="adsbygoogle" 239 style="display:inline-block;width:300px;height:250px" 240 data-ad-client="ca-pub-4352453996606420" 241 data-ad-slot="9456096016"></ins>
242<script> 243(adsbygoogle = window.adsbygoogle || []).push({}); 244</script>
244 </div> 245 </div> 246 247 </div> 248 </aside> 249 </div> 250 </div> 251<footer class="bg-dark text-white text-center py-4" id="footer"> 252 <div class="container"> 253 <!-- 使ç¨Flexå¸å±ï¼ä½¿å å®¹å± ä¸å¹¶èªéåº --> 254 <div class="row"> 255 <!-- 左侧é¨åï¼å å«ä¸ç»é¾æ¥ï¼ --> 256 <div class="col-12 text-center"> 257 <a href="/about" class="text-white">å ³äºæä»¬</a> · 258 <a href="/guanyu" class="text-white">ç¨æ·åè®®</a> · 259 <a href="/privacy" class="text-white">éç§æ¿ç</a> · 260 <a href="/app" class="text-white">ç èAPP</a> 261 </div> 262 <div class="col-12 text-center"> 263 <a href="https://beian.miit.gov.cn/" target="_blank" class="text-white" rel="external nofollow">éICPå¤11008023å·-1</a> · 264 <a href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=42018502002747" target="_blank" class="text-white" rel="external nofollow">éå ¬ç½å®å¤42018502002747å·</a> 265 </div> 266 <div class="col-12 text-center"> 267 举æ¥çµè¯ 13125131232 · 举æ¥é®ç®± [email protected] 268 </div> 269 <div class="col-12 text-center"> 270 <a href="/jubao" class="text-white">ç è举æ¥å ¥å£</a> · 271 <a target="_blank" href="https://www.12377.cn/" class="text-white">è¿æ³åä¸è¯ä¿¡æ¯ä¸¾æ¥ä¸å¿</a> · 272 <a target="_blank" href="https://www.12377.cn/jbxzxq/sql_web.html" class="text-white">æ¶ä¼ä¸¾æ¥ä¸åº</a> 273 </div> 274 </div> 275 </div> 276</footer> 277 278<div id="nav_top" title="åå°é¡µå¤´"><span>â²</span></div> 279 280<!-- å ¨ç«å®¹å¨DIVç»æ --> 281</div> 282 283<!-- JS åº -->
284<script src="//cdn.jandan.net/static/libs/jquery/3.5.1/jquery.min.js" type="application/javascript"></script>
vendor: 1 bytes, line 284
284
285<script src="//cdn.jandan.net/static/libs/bootstrap/5.1.3/js/bootstrap.bundle.js" type="application/javascript"></script>
vendor: 1 bytes, line 285
285
286<script src="//cdn.jandan.net/static/libs/jquery.lazyload/1.9.1/jquery.lazyload.min.js" type="application/javascript"></script>
vendor: 1 bytes, line 286
286
287<script src="//cdn.jandan.net/static/libs/art-template/4.13.2/lib/template-web.min.js" type="application/javascript"></script>
287 288<!-- èªå®ä¹JS -->
289<script> 290 (function() { 291 // å®ä¹æ¨¡æ¿æ¸²æè¿æ»¤å¨ 292 // template.defaults.imports.renderImageHTML = function(content) { 293 // let $dom = $('<div>').append($.parseHTML(content)); 294 // let imgs = $dom.find('img'); 295 // imgs.each(function(index, element) { // æ¿æ¢GIFå¾çå°ç¼©ç¥å¾ 296 // let $this = $(element); 297 // let url = $this.attr('src'); 298 // // éGIFç´æ¥å±ç¤º 299 // if (!/\.gif$/.test(url)) { 300 // if (!/\.webp$/.test(url)) { 301 // url = url + '.webp' 302 // } 303 // $this.attr('src', url); 304 // return; 305 // } 306 // // GIF å¼ºè¡æ¿æ¢ç¼©ç¥å¾ 307 // //url = url.replace(/(orj360|mw600|large|mw2000|mw1024)/, 'thumb180') + '.webp'; 308 // url = url.replace(/(https?:\/\/[^\/]+?)\/\w+\/(.+)/, '$1/thumb180/$2') + '.webp'; 309 // $this.attr('src', url); 310 // }); 311 // return $dom.html(); 312 // }; 313 314 // æ£æµæµè§å¨æ¯å¦æ¯æWebPï¼åæ¥æ£æµï¼ç«å³è¿åç»æï¼ 315 let supportsWebP = (function() { 316 try { 317 let elem = document.createElement('canvas'); 318 return elem.getContext && elem.getContext('2d') 319 && elem.toDataURL('image/webp').indexOf('data:image/webp') === 0; 320 } catch (e) { 321 return false; 322 } 323 })(); 324 325 template.defaults.imports.renderImageHTML = function(content) { 326 // å ³é®ï¼å æææsrcæ¿æ¢ædata-srcï¼é¿å parseHTMLæ¶èªå¨å è½½åå¾ 327 let modifiedContent = content.replace(/<img([^>]*)src=/gi, '<img$1data-src='); 328 let $dom = $('<div>').append($.parseHTML(modifiedContent)); 329 let imgs = $dom.find('img'); 330 331 imgs.each(function(index, element) { 332 let $this = $(element); 333 let originalUrl = $this.attr('data-src'); 334 let alt = $this.attr('alt') || ''; 335 let className = $this.attr('class') || ''; 336 337 // 夿æ¯å¦ä¸ºGIF 338 let isGif = /\.gif$/.test(originalUrl); 339 340 // çæä¸åæ ¼å¼çå¾çURL 341 let finalUrl; 342 343 if (isGif) { 344 // GIFï¼çæç¼©ç¥å¾çwebp 345 finalUrl = originalUrl.replace(/(https?:\/\/[^\/]+?)\/\w+\/(.+)/, '$1/thumb180/$2') + '.webp'; 346 } else { 347 // éGIFï¼æ ¹æ®æµè§å¨æ¯ææ åµéæ©æ ¼å¼ 348 if (supportsWebP) { 349 if (!/\.webp$/.test(originalUrl)) { 350 finalUrl = originalUrl + '.webp'; 351 } else { 352 finalUrl = originalUrl; 353 } 354 } else { 355 // 䏿¯æWebPçæµè§å¨ç¨åå¾ 356 finalUrl = originalUrl.replace(/\.webp$/, ''); 357 } 358 } 359 360 // ç´æ¥è®¾ç½®æç»çsrc 361 $this.attr('src', finalUrl); 362 $this.removeAttr('data-src'); 363 }); 364 365 return $dom.html(); 366 }; 367 368 function getCookie(name) { 369 let nameEQ = name + "="; 370 let ca = document.cookie.split(';'); 371 for (let i = 0; i < ca.length; i++) { 372 let c = ca[i]; 373 while (c.charAt(0) === ' ') c = c.substring(1, c.length); 374 if (c.indexOf(nameEQ) === 0) return decodeURIComponent(c.substring(nameEQ.length, c.length)); 375 } 376 return null; 377 } 378 379 function render_gif_mask(element) { 380 let img = $(element); 381 // å»é¤å åçloadäºä»¶ 382 img.off('load'); 383 let url = img.attr('src'); 384 if (!/\.gif/.test(url)) { 385 return; 386 } 387 // å°GIFé®ç½©çä½ç½®è°æ´çåå¾çä¸è´ 388 let mask = $('<div class="gif-mask">PLAY</div>'); 389 img.parent().css('position', 'relative'); 390 let position = img.position(); 391 mask.css({
392 'height': img.height(), 393 'width': img.width(), 394 'line-height': img.height() + 'px', 395 'left': position.left, 396 'top': position.top 397 }); 398 img.after(mask); 399 // å°GIFé®ç½©ç¹å»å è½½å¨å¾ 400 mask.click(function() { 401 let full_url = url.replace(/thumb180/, 'large'); 402 full_url = full_url.replace('.webp', ''); 403 img.attr('src', full_url).on('load', function() { 404 mask.remove(); 405 }); 406 mask.text('LOADING...'); 407 }); 408 } 409 410 function load_sidebar_list(url, list) { 411 412 let sidebarTPL = $("#sidebar-top-tpl"); 413 414 // æäºåºæ¯æ²¡æè¿ä¸ªæ¨¡çï¼å®¹é 415 if (sidebarTPL.length === 0) { 416 return; 417 } 418 419 // çé¨-æè¿4å°æ¶ 420 $.getJSON(url, function(data) { 421 if (data.code !== 0) { 422 return; 423 } 424 425 if (data.data.length === 0) 426 return; 427 428 429 430 let tpl = sidebarTPL.html(); 431 let html = template.render(tpl, data); 432 //let list = $("#list-pic"); 433 list.html(html); 434 // ç»å®OOXXäºä»¶ 435 bind_ooxx(); 436 437 let images = list.find('img'); 438 // ç§»é¤lazy loadï¼ç¡®ä¿loadäºä»¶è½è§¦åï¼è®¡æ°é»è¾æ£å¸¸å·¥ä½ 439 images.removeAttr('loading'); 440
441 function renderShowMoreButtons() { 442 list.find('.hot-content').each(function() { 443 let hotContent = $(this); 444 // é¿å é夿·»å æé® 445 if (hotContent.find('.show_more').length > 0) { 446 return; 447 } 448 if (this.scrollHeight > 200) { 449 let show_more = $('<div class="show_more"> â§ å±å¼</div>'); 450 show_more.click(function() { 451 let $this = $(this); 452 if ($this.hasClass('expand')) { 453 $this.parent().css('max-height', '200px'); 454 $this.removeClass('expand'); 455 $this.text(' â§ å±å¼'); 456 } else { 457 $this.addClass('expand'); 458 $this.parent().css('max-height', '100%'); 459 $this.text(' ⥠æ¶èµ·'); 460 } 461 }); 462 hotContent.append(show_more); 463 hotContent.click(function(e) { 464 // é²éå½è§¦å 465 if (!$(e.target).is(show_more)) { 466 show_more.click(); 467 } 468 }); 469 } 470 }); 471 } 472 473 let loadedCount = 0; 474 let totalImages = images.length; 475 476 function handleImageComplete(imgElement) { 477 render_gif_mask(imgElement); 478 loadedCount++; 479 if (loadedCount >= totalImages) { 480 renderShowMoreButtons(); 481 } 482 } 483 484 images.on('load', function() { 485 handleImageComplete(this); 486 }); 487 488 images.on('error', function() { 489 // å¾çå 载失败ä¹è®¡æ°ï¼é¿å å¡å¨è¿é 490 loadedCount++; 491 if (loadedCount >= totalImages) { 492 renderShowMoreButtons(); 493 } 494 }); 495 496 // å¤çå·²ç»ç¼å宿çå¾çï¼loadäºä»¶å¯è½å·²è§¦åï¼ 497 images.each(function() { 498 if (this.complete) { 499 handleImageComplete(this); 500 } 501 }); 502 503 // å åºï¼3ç§åå¼ºå¶æ¸²ææé®ï¼é¿å æäºå¾çå¡ä½å¯¼è´æ°¸è¿ä¸æ¾ç¤º 504 setTimeout(renderShowMoreButtons, 3000); 505 list.find('.hot-content') 506 }).fail(function(jqxhr, textStatus, error) { 507 console.error('Request Failed: ' + textStatus + ', ' + error); 508 }); 509 } 510 511 function bind_ooxx() { 512 let btn = $('a.vote-btn'); 513 btn.unbind('click'); 514 btn.click(function() { 515 let $this = $(this); 516 if ($this.data('voted')) { 517 return; 518 } 519 const id = $this.data('id'); 520 const type = $this.data('type'); 521 $.ajax({ 522 url: "/api/comment/vote", // æ¿æ¢ä¸ºä½ ç API å°å 523 type: "POST", 524 contentType: "application/json", // 设置请æ±å¤´ä¸º JSON 525 data: JSON.stringify({ 526 "comment_id": id, 527 "like_type": type, 528 "data_type": 'comment' 529 }), 530 success: function(response) { 531 const span = $this.next('span'); 532 let num = parseInt(span.text()); 533 span.text(num + 1); 534 $this.data('voted', true); 535 }, 536 error: function(xhr, status, error) { 537 console.error("Request failed:", status, error); 538 }, 539 }); 540 }); 541 } 542 543 $(document).ready(function() { 544 545 // å¾çæå è½½ 546 $("img.lazy").lazyload(); 547 548 // é¢è²æ¨¡å¼åæ¢ 549 $('.model-btn').click(function() { 550 if (localStorage.getItem('darkMode') !== 'true') { 551 document.documentElement.classList.add('dark-model'); 552 localStorage.setItem('darkMode', 'true'); 553 $(this).find('i').removeClass('bi-moon-fill').addClass('bi-brightness-high'); 554 return; 555 } 556 $(this).find('i').removeClass('bi-brightness-high').addClass('bi-moon-fill'); 557 document.documentElement.classList.remove('dark-model'); 558 localStorage.setItem('darkMode', 'false'); 559 }); 560 561 // åå°é¡¶é¨æé®æ¾ç¤ºé»è¾ 562 $(window).scroll(function() { 563 let scrollTop = $(window).scrollTop(); 564 if (scrollTop > 400) { 565 $("#nav_top").show().css('display', 'block'); 566 } else { 567 $("#nav_top").hide(); 568 } 569 }); 570 // åå°é¡¶é¨æé®ç¹å»é»è¾ 571 $("#nav_top").click(function() { 572 $('html, body').animate({ 573 scrollTop: 0 574 }, 100); 575 }); 576 577 // 计ç®ç¿»é¡µæé®å¨æå®ä½ 578 function setPageBtnPosition() { 579 const $div = $('#main-warpper'); 580 const $leftBtn = $('.nav-next'); 581 const $rightBtn = $('.nav-prev'); 582 583 if ($rightBtn.length === 0) { 584 return; 585 } 586 587 const rect = $div[0].getBoundingClientRect(); 588 589 if ($leftBtn.length > 0) {
590 let leftGap = rect.left - 60; 591 // å·¦æé®ï¼div 左边 + 10px 592 $leftBtn.css('top', "50%"); 593 $leftBtn.css('left', leftGap); 594 } 595 596 // 峿é®ï¼div å³è¾¹ - 10px - æé®å®½åº¦ 597 let rightGap = rect.right + 10; 598 $rightBtn.css('top', "50%"); 599 $rightBtn.css('left', rightGap); 600 } 601 // äºä»¶ç»å® 602 $(window).on('resize scroll', setPageBtnPosition); 603 setPageBtnPosition(); 604 605 // æ¬æµ®æµ®çª 606 let floatDiv = $('#float-window'); 607 if (floatDiv.length > 0) { 608 let floatOffset = floatDiv.offset(); 609 floatDiv.data('top', floatOffset.top + 250); 610 $(window).scroll(function() { 611 let scrollTop = $(document).scrollTop(); 612 let divTop = floatDiv.data('top'); 613 if (scrollTop > divTop) { 614 floatDiv.addClass('float-window'); 615 return; 616 } 617 floatDiv.removeClass('float-window'); 618 }); 619 } 620 621 622 // æ£æµæ¯å¦ä¸ºç§»å¨ç«¯ï¼ä¾§è¾¹æ æ¯å¦å¯è§ï¼ 623 function isSidebarVisible() { 624 return $('.sidebar').is(':visible'); 625 } 626 627 // æ è®°æ¯å¦å·²ç»å è½½è¿ä¾§è¾¹æ å 容 628 let sidebarContentLoaded = false; 629 // æ è®°å个æ ç¾æ¯å¦å·²å è½½ 630 let tabLoaded = { 631 pic: false, 632 hot: false, 633 ooxx: false, 634 treehole: false 635 }; 636 637 // å 载侧边æ è®ºåæ°æ® 638 function loadSidebarBbs() { 639 $.getJSON('/api/forum/posts/112928?page=1', function(data) { 640 if (data.code !== 0) { 641 return; 642 } 643 let tpl = $("#sidebar-bbs-tpl").html(); 644 let html = template.render(tpl, data.data); 645 $("#sidebar-bbs").html(html); 646 }).fail(function(jqxhr, textStatus, error) { 647 console.error('Request Failed: ' + textStatus + ', ' + error); 648 }); 649 } 650 651 // å è½½æå®æ ç¾çå 容 652 function loadTabContent(tab) { 653 let list = $('#list-' + tab); 654 if (list.children().length > 0 && list.find('.show_more, .hot-item').length > 0) { 655 return; // å·²ç»å è½½è¿äº 656 } 657 658 let apiUrl; 659 switch(tab) { 660 case 'hot': 661 apiUrl = '/api/top/4hr'; 662 break; 663 case 'ooxx': 664 apiUrl = '/api/top/post/21183'; 665 break; 666 case 'treehole': 667 apiUrl = '/api/top/post/102312'; 668 break; 669 case 'pic': 670 default: 671 apiUrl = '/api/top/post/26402'; 672 break; 673 } 674 675 load_sidebar_list(apiUrl, list); 676 tabLoaded[tab] = true; 677 } 678 679 // ä¾§è¾¹æ çé¨åæ¢ï¼ç«å³ç»å®äºä»¶ï¼ä¸ä¾èµä¾§è¾¹æ æ¯å¦å¯è§ï¼ 680 $('.hot-tabs li').click(function() { 681 let tab = this.id.split('-')[1]; 682 let parent = $(this).parent(); 683 parent.find('li').removeClass('current'); 684 $('.sidebar .hot-list').addClass('d-none'); 685 $(this).addClass('current'); 686 687 let list = $('#list-' + tab); 688 list.removeClass('d-none'); 689 690 // å¦æä¾§è¾¹æ å¯è§ä¸è¯¥æ ç¾æªå è½½ï¼åå è½½ 691 if (isSidebarVisible() && !tabLoaded[tab]) { 692 loadTabContent(tab); 693 } 694 }); 695 696 // æ£æ¥å¹¶å 载侧边æ å 容 697 function checkAndLoadSidebar() { 698 if (!isSidebarVisible()) { 699 return; 700 } 701 702 // å è½½è®ºåæ°æ®ï¼åªå è½½ä¸æ¬¡ï¼ 703 if (!sidebarContentLoaded) { 704 sidebarContentLoaded = true; 705 loadSidebarBbs(); 706 } 707 708 // å è½½å½åæ¿æ´»çæ ç¾ 709 let activeTab = $('.hot-tabs li.current').attr('id').split('-')[1]; 710 if (!tabLoaded[activeTab]) { 711 loadTabContent(activeTab); 712 } 713 } 714 715 // 页é¢å è½½åæ£æ¥ä¸æ¬¡ 716 $(window).on('load', function() {
717 setTimeout(checkAndLoadSidebar, 100); 718 }); 719 720 // çªå£å¤§å°æ¹åæ¶ä¹æ£æ¥ï¼æ¯å¦æè½¬å±å¹ï¼ 721 $(window).on('resize', checkAndLoadSidebar); 722 bind_ooxx(); 723 724 // è¡ä¸ºæç¹ 725 let dotData = {}; 726 let ajaxPromise = $.ajax({ 727 'url': '/api/post/dot', 728 'data': dotData, 729 dataType: 'json' 730 }); 731 ajaxPromise.done(function(resp) { 732 733 }); 734 735 let userNickName = getCookie('egg_login_nickname'); 736 if (userNickName !== '') { 737 $('#navbar .duan').show(); 738 // æªè¯»æ¶æ¯æç¤º 739 $.ajax({ 740 'url': '/api/member/check_notice', 741 'data': dotData, 742 dataType: 'json' 743 }).done((resp) => { 744 if (resp.code === 0) { 745 let unreadCount = resp.data; 746 // æ²¡ææ¶æ¯ä¸æ¾ç¤º 747 if (unreadCount === 0) { 748 return 749 } 750 let span = $('.notice_num'); 751 span.css('display', 'inline-block'); 752 // å¤§äº 99 æ¾ç¤º 99 + 753 if (unreadCount > 99) { 754 span.text('99+'); 755 return; 756 } 757 span.text(unreadCount); 758 } 759 }); 760 } 761 762 763 // ç§»å¨ç«¯æå èå 764 let $moreBtn = $('#nav-more'); 765 let $navLevel2 = $('.navbar-level2'); 766 if ($moreBtn.is(':visible')) { 767 let $navLevel1 = $('.navbar-level1'); 768 let li = $navLevel1.find('li.d-sm-block'); 769 li.removeClass('d-none'); 770 $navLevel2.find('ul').append(li); 771 $moreBtn.click(() => { 772 $navLevel2.toggleClass('d-none d-block'); 773 if ($navLevel2.is(':visible')) { 774 localStorage.setItem('jandan:nav-more', "1"); 775 $moreBtn.find('a').html('<i class="bi bi-arrow-bar-up"></i>'); 776 } else { 777 localStorage.setItem('jandan:nav-more', "0"); 778 $moreBtn.find('a').html('<i class="bi bi-three-dots"></i>'); 779 } 780 }); 781 let navMore = localStorage.getItem('jandan:nav-more'); 782 if (navMore === "1") { 783 $moreBtn.trigger('click'); 784 } 785 } 786 }); 787 }()); 788</script>
788 789 790 791 792 793 794 795 796
796<script src="//cdn.jandan.net/static/libs/vue/2.6.14/vue.min.js"></script>
796 797
797<script src="//cdn.jandan.net/static/libs/axios/0.19.2/axios.min.js"></script>
797 798
798<script src="//cdn.jandan.net/static/libs/vue-lazyload/1.2.6/vue-lazyload.js"></script>
798 799
799<script src="//cdn.jandan.net/static/libs/modern-screenshot/4.7.0/index.js"></script>
799 800
800<script src="/wp-content/themes/jandan2025/static/20260911090541/c5944db29c51c59ee8dfe0034ba407de2mbXp8OS.js"></script>
800 801
801<script src="/wp-content/themes/jandan2025/static/20260911090541/cfdc4e2a67f6992073cb895d137e9dd52qnSz8Ie.js"></script>
801 802 803 804 805 806<!-- ç»è®¡ä»£ç -->
807<script> 808(function() { 809 const SITE_ID = 1; 810 const DOMAIN = 'https://ga.jandan.net'; 811 812 function generateRandomCode(length = 16) { 813 const chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; 814 let result = ''; 815 for (let i = 0; i < length; i++) { 816 result += chars.charAt(Math.floor(Math.random() * chars.length)); 817 } 818 return result; 819 } 820 821 let randomCode = localStorage.getItem('matomo_rand_code'); 822 if (!randomCode) { 823 randomCode = generateRandomCode(); 824 localStorage.setItem('matomo_rand_code', randomCode); 825 } 826 827 const JS_URL = `${DOMAIN}/_static/js/${randomCode}.js`; 828 const COLLECT_URL = `${DOMAIN}/api/collect/${randomCode}`; 829 830 window._paq = window._paq || []; 831 832 _paq.push(['setTrackerUrl', COLLECT_URL]); 833 _paq.push(['setSiteId', SITE_ID]); 834 _paq.push(['trackPageView']); 835 _paq.push(['enableLinkTracking']); 836 837 838 var script = document.createElement('script'); 839 script.type = 'text/javascript'; 840 script.async = true; 841 script.src = JS_URL; 842 843 var firstScript = document.getElementsByTagName('script')[0]; 844 firstScript.parentNode.insertBefore(script, firstScript); 845})(); 846</script>
846 847
848<script src="/wp-content/themes/jandan2025/static/20260911090541/6b1a5d6b570ca69127fc124bfaf79fa77DuWKxRB.js"></script>
vendor: 1 bytes, line 848
848
849<script> 850JDAnalytics.init(); 851</script>
851 852<!-- ç»è®¡ç»æ --> 853 854<!-- Cloudflare Web Analytics --> 855<!--
vendor: 100 bytes, line 855
855 <script defer src='https://static.cloudflareinsights.com/beacon.min.js' data-cf-beacon='{"token": "
855df5cec1c8c8b4360b35d8bdfafe0a19b
vendor: 14 bytes, line 855
855"}'></script>
855--> 856<!-- End Cloudflare Web Analytics --> 857<!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 64 bytes, lines 857-858
857 858<script async src="https://www.googletagmanager.com/gtag/js?id=
858G-ZDE403EQ65
vendor: 12 bytes, line 858
858"></script>
859<script> 860
vendor: 155 bytes, lines 860-866
860window.dataLayer = window.dataLayer || []; 861 862 function gtag() { 863 dataLayer.push(arguments); 864 } 865 gtag('js', new Date()); 866 gtag('config', '
866G-ZDE403EQ65
vendor: 4 bytes, line 866
866');
867</script>
867 868</body> 869 870</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.