PageSourceSearch

https://xyxxzt.com/assets/91cg/search.js

js xyxxzt.com collected 2026-09-28 02:28:44 UTC 28,454 bytes, 698 lines download raw bytes

1;(async function (doc, win, layer, hotRankList, keyword) {
2  const buildSearchUrl = k => `/search/${encodeURIComponent(k)}/`
3  const isSearchPage = () => window.location.pathname.includes("search-page")
4
5  const parseKeyword = (raw, domparser) => {
6    const keywordhtml = domparser.parseFromString(String(raw || "").trim(), "text/html")
7    return keywordhtml.body.textContent
8  }
9
10  const submitSearch = keyword => {
11    if (!keyword || keyword.length < 1) return
12    try {
13      top.location.href = buildSearchUrl(keyword)
14    } finally {
15      $HistoryRecord.add(keyword)
16    }
17  }
18  // 列表(搜索结果)
19  class SortList {
20    constructor(selector, url) {
21      const _this = this
22      this.$archive = () => $(selector)
23      this.keyword = keyword
24      this.url = url
25      this.sort = ""
26      this.page = 1
27
28      // 单选
29      $(document).on("change", '.xqbj-search-sort input[name="searchsort"][type="radio"]', function () {
30        _this.sort = $(this).val()
31        _this.page = 1
32        _this.load()
33      })
34    }
35
36    // 入口方法
37    load() {
38      this.showLoading()
39      this.fetchData()
40        .done(html => {
41          this.renderList(html)
42          this.bindEvents()
43        })
44        .fail(() => {
45          layer.msg("数据请求失败")
46        })
47        .always(() => {
48          this.goTop()
49          setTimeout(() => {
50            layer.closeAll("loading")
51          }, 500)
52        })
53    }
54
55    // 请求
56    fetchData() {
57      const data = {
58        q: this.keyword,
59        sort: this.sort,
60        page: this.page
61      }
62
63      return $.ajax({
64        url: this.url,
65        method: "GET",
66        data
67      })
68    }
69
70    // 渲染[后端处理]
71    renderList(html) {
72      this.$archive().fadeOut("fast", () => {
73        // [后端处理]
74        // this.$archive.replaceWith(this.listTemplate()).fadeIn(300);
75        this.$archive().replaceWith(html).fadeIn(300)
76      })
77    }
78
79    // 模板(列表 + 分页)[后端处理]
80    listTemplate = html => {
81      return `
82                <div id="archive" role="main">
83                    <article itemscope itemtype="http://schema.org/BlogPosting" class="">
84                        <div class="display-none" itemscope itemprop="author" itemtype="http://schema.org/Person">
85                            <meta itemprop="name" content="瓜瓜"/>
86                            <meta itemprop="url" content=""/>
87                        </div>
88                        <div class="display-none" itemscope itemprop="publisher" itemtype="http://schema.org/Organization">
89                            <meta itemprop="name" content="瓜瓜"/>
90                            <div itemscope itemprop="logo" itemtype="http://schema.org/ImageObject">
91                                <meta itemprop="url" content="/usr/themes/Mirages/images/51cg.png?s=50&amp;r=G&amp;d=">
92                            </div>
93                        </div>
94                        <meta itemprop="url mainEntityOfPage" content="https://51cg1.com/archives/207221/" />
95                        <meta itemprop="dateModified" content="2025-05-19T09:10:30+00:00">
96                        <a href="https://51cg1.com/archives/207221/" >
97                            <div class="post-card" id="post-card-207221" >
98                                <div class="blog-background"></div>
99                                <script type="text/javascript">
100                                    loadBannerDirect('https://pic.sqbcn.cn/upload_01/xiao/20250517/2025051717181423596.jpeg', '', document.querySelector('#post-card-207221'), '-1', document.querySelector('#post-card-207221').offsetWidth, document.querySelector('#post-card-207221').offsetHeight);
101                                </script>
102                                <div class="post-card-mask ">
103                                <div class="post-card-container">
104                                    <h2 class="post-card-title" itemprop="headline">日本AV女优路边撩素人 偶遇中国猛男上集 车内激战持久狂野 事后甩50万日元惊呆女优 形象瞬间高大!</h2>
105                                        <div class="post-card-info">
106                                            <span itemprop="author" itemscope itemtype="http://schema.org/Person">瓜瓜 • </span>                                                <span itemprop="datePublished" content="2025-05-17T16:18:00+00:00">2025 年 05 月 17 日 • </span>
107                                            <span>今日吃瓜, 看片娱乐</span>
108                                        </div>
109                                    </div>
110                                </div>
111                            </div>
112                        </a>
113                    </article>
114                    <article itemscope itemtype="http://schema.org/BlogPosting" class="">
115                        <div class="display-none" itemscope itemprop="author" itemtype="http://schema.org/Person">
116                            <meta itemprop="name" content="瓜表妹"/>
117                            <meta itemprop="url" content=""/>
118                        </div>
119                        <div class="display-none" itemscope itemprop="publisher" itemtype="http://schema.org/Organization">
120                            <meta itemprop="name" content="瓜表妹"/>
121                            <div itemscope itemprop="logo" itemtype="http://schema.org/ImageObject">
122                                <meta itemprop="url" content="/usr/themes/Mirages/images/51cg.png?s=50&amp;r=G&amp;d=">
123                            </div>
124                        </div>
125                        <meta itemprop="url mainEntityOfPage" content="https://51cg1.com/archives/206994/" />
126                        <meta itemprop="dateModified" content="2025-05-19T09:10:36+00:00">
127                        <a href="https://51cg1.com/archives/206994/" >
128                            <div class="post-card" id="post-card-206994" >
129                                <div class="blog-background"></div>
130                                <script type="text/javascript">
131                                loadBannerDirect('https://pic.sqbcn.cn/upload_01/xiao/20250516/2025051621385232406.jpeg', '', document.querySelector('#post-card-206994'), '-1', document.querySelector('#post-card-206994').offsetWidth, document.querySelector('#post-card-206994').offsetHeight);
132                                </script>
133                                <div class="post-card-mask ">
134                                    <div class="post-card-container">
135                                        <h2 class="post-card-title" itemprop="headline">台湾极品福利姬女神 波衣 道具自慰喷水私拍合集 近距离展示美乳嫩穴无限魅惑 娇喘勾魂诱人!</h2>
136                                        <div class="post-card-info">
137                                            <span itemprop="author" itemscope itemtype="http://schema.org/Person">瓜表妹 • </span>                                                <span itemprop="datePublished" content="2025-05-17T16:00:00+00:00">2025 年 05 月 17 日 • </span>
138                                            <span>今日吃瓜, 网红黑料</span>
139                                        </div>
140                                    </div>
141                                </div>
142                            </div>
143                        </a>
144                    </article>
145                    <article itemscope itemtype="http://schema.org/BlogPosting" class="">
146                        <div class="display-none" itemscope itemprop="author" itemtype="http://schema.org/Person">
147                            <meta itemprop="name" content="瓜表妹"/>
148                            <meta itemprop="url" content=""/>
149                        </div>
150                        <div class="display-none" itemscope itemprop="publisher" itemtype="http://schema.org/Organization">
151                            <meta itemprop="name" content="瓜表妹"/>
152                            <div itemscope itemprop="logo" itemtype="http://schema.org/ImageObject">
153                                <meta itemprop="url" content="/usr/themes/Mirages/images/51cg.png?s=50&amp;r=G&amp;d=">
154                            </div>
155                        </div>
156                        <meta itemprop="url mainEntityOfPage" content="https://51cg1.com/archives/206989/" />
157                        <meta itemprop="dateModified" content="2025-05-19T09:10:44+00:00">
158                        <a href="https://51cg1.com/archives/206989/" >
159                            <div class="post-card" id="post-card-206989" >
160                                <div class="blog-background"></div>
161                                <script type="text/javascript">
162                                    loadBannerDirect('https://pic.sqbcn.cn/upload_01/xiao/20250516/2025051620282659908.jpeg', '', document.querySelector('#post-card-206989'), '-1', document.querySelector('#post-card-206989').offsetWidth, document.querySelector('#post-card-206989').offsetHeight);
163                                </script>
164                                <div class="post-card-mask ">
165                                    <div class="post-card-container">
166                                        <h2 class="post-card-title" itemprop="headline">极品反差女神 私拍道具插穴特写 粉嫩蜜穴淫水泛滥 蜜桃臀高潮喷涌 画面撩到爆!</h2>
167                                        <div class="post-card-info">
168                                            <span itemprop="author" itemscope itemtype="http://schema.org/Person">瓜表妹 • </span>                                                <span itemprop="datePublished" content="2025-05-17T15:30:00+00:00">2025 年 05 月 17 日 • </span>
169                                            <span>今日吃瓜, 骚男骚女</span>
170                                        </div>
171                                    </div>
172                                </div>
173                            </div>
174                        </a>
175                    </article>
176                    <article itemscope itemtype="http://schema.org/BlogPosting" class="">
177                        <div class="display-none" itemscope itemprop="author" itemtype="http://schema.org/Person">
178                            <meta itemprop="name" content="瓜二哥"/>
179                            <meta itemprop="url" content=""/>
180                        </div>
181                        <div class="display-none" itemscope itemprop="publisher" itemtype="http://schema.org/Organization">
182                            <meta itemprop="name" content="瓜二哥"/>
183                            <div itemscope itemprop="logo" itemtype="http://schema.org/ImageObject">
184                                <meta itemprop="url" content="/usr/themes/Mirages/images/51cg.png?s=50&amp;r=G&amp;d=">
185                            </div>
186                        </div>
187                        <meta itemprop="url mainEntityOfPage" content="https://51cg1.com/archives/207136/" />
188                        <meta itemprop="dateModified" content="2025-05-19T09:09:56+00:00">
189                        <a href="https://51cg1.com/archives/207136/" >
190                            <div class="post-card" id="post-card-207136" >
191                                <div class="blog-background"></div>
192                                <script type="text/javascript">
193                                loadBannerDirect('https://pic.sqbcn.cn/upload_01/xiao/20250516/2025051621454710950.jpeg', '', document.querySelector('#post-card-207136'), '-1', document.querySelector('#post-card-207136').offsetWidth, document.querySelector('#post-card-207136').offsetHeight);
194                                </script>
195                                <div class="post-card-mask ">
196                                    <div class="post-card-container">
197                                        <h2 class="post-card-title" itemprop="headline">抖音推特双平台反差母狗 露脸自慰裸舞合集 抖奶露穴超级淫骚 性感身材令人血脉喷张!</h2>
198                                        <div class="post-card-info">
199                                            <span itemprop="author" itemscope itemtype="http://schema.org/Person">瓜二哥 • </span>                                                <span itemprop="datePublished" content="2025-05-17T15:21:00+00:00">2025 年 05 月 17 日 • </span>
200                                            <span>今日吃瓜, 网红黑料</span>
201                                        </div>
202                                    </div>
203                                </div>
204                            </div>
205                        </a>
206                    </article>
207
208                    <div class="page-nav page-nav-ajax">
209                        <div class="page-jump">
210                            <div id="pageForm" method="get">
211                                <span class="page-info"> 12/518 </span>
212                                <input type="number" id="pageNum">
213                                <button id="submitBtn">跳转</button>
214                            </div>
215                        </div>
216                        <ul class="page-navigator">
217                            <li class="prev"><a href="javascript:void(0);" data-page="11">上一页</a></li>
218                            <li><span></span></li>
219                            <li class="next"><a href="javascript:void(0);" data-page="13">下一页</a></li>
220                        </ul>
221                    </div>
222                </div>
223            `
224    }
225
226    // 事件
227    bindEvents() {
228      const _this = this
229      $(doc)
230        .off("click.pageNav")
231
232        // 上一页
233        .on("click.pageNav", ".page-nav-ajax .prev a", function (e) {
234          e.preventDefault()
235          _this.page = $(this)?.data("page") || 1
236          // console.log('prev clicked', $(this).data('page'));
237          _this.load()
238        })
239
240        // 下一页
241        .on("click.pageNav", ".page-nav-ajax .next a", function (e) {
242          e.preventDefault()
243          _this.page = $(this)?.data("page") || 1
244          _this.load()
245        })
246
247        // 跳转按钮
248        .on("click.pageNav", ".page-nav-ajax #submitBtn", function (e) {
249          e.preventDefault()
250          const input = $(this).closest(".page-nav-ajax").find("input").val()
251
252          _this.page = 1 * input || 1
253          _this.load()
254        })
255    }
256
257    // 显示加载动画
258    showLoading() {
259      layer.load(0)
260    }
261
262    // 显示加载动画
263    goTop() {
264      window.scrollTo({
265        top: 0,
266        behavior: "smooth"
267      })
268    }
269  }
270
271  // 导航(头部导航)
272  class NavSearch {
273    constructor(hoturl, url, throttleInterval, keyLength) {
274      const _this = this
275      this.hoturl = hoturl
276      this.url = url
277      this.throttleInterval = throttleInterval
278      this.keyLength = keyLength
279      this.domparser = new DOMParser()
280
281      // 模板定义(历史)
282      this.hotTemplate = (c = []) => {
283        const list = Array.isArray(c) ? c.slice(0, 10) : []
284        const hasData = list.length > 0
285        return `
286                    <div class="container-search-context">
287                    <div class="search-container">
288                        <div class="search-title">
289                        <span>历史记录</span>
290                        <div class="r-text on-history-clear">
291                            <i class="fa fa-trash-o icon"></i>
292                            删除记录
293                        </div>
294                        </div>
295                        <div class="container-search-tags">
296                        <div class="list history-record">
297                            <div class="no-data">暂无记录</div>
298                        </div>
299                        </div>
300
301                        <div class="search-title search-border">
302                        <span>热门搜索</span>
303                        </div>
304                        <div class="container-search-hots">
305                        ${
306                          hasData
307                            ? `
308                                <div class="rank-list">
309                                    ${c
310                                      .slice(0, 10)
311                                      .map(
312                                        (e, index) => `
313                                        <a href="${e.permalink}" class="rank-card">
314                                            ${index <= 2 ? `<div class="xqbj-icon-rank-${index + 1} rank-card-icon"></div>` : `<div class="rank-card-icon rank-card-num">${index + 1}</div>`}
315                                            <div class="rank-card-title text-line-ellipsis-1">${e.title}</div>
316                                            <div class="rank-card-meta">
317                                              <span class="view"><span class="view-num">${e.hot_formatted}</span><span class="view-suffix">热度</span></span>
318                                              <span class="hot-badge">热</span>
319                                            </div>
320                                        </a>
321                                    `
322                                      )
323                                      .join("")}
324                                </div>
325                            `
326                            : `<div class="no-data">暂无数据</div>`
327                        }
328                        </div>
329                    </div>
330                    </div>
331                `
332      }
333
334      this.renderSuggestList = (keyword, listSearchContainer, data) => {
335        const safeKeyword = keyword.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")
336        const regex = new RegExp(safeKeyword, "g")
337        const list = {
338          list: data.map(e => ({
339            title: e,
340            url: buildSearchUrl(e)
341          }))
342        }
343
344        list.list = list.list.map(item => ({
345          ...item,
346          title: item.title.replace(regex, `<span class="keyword">${keyword}</span>`)
347        }))
348
349        const tpl = _this.seaTemplate(list)
350        $(listSearchContainer).html(tpl)
351      }
352
353      this.requestSuggest = (keyword, listSearchContainer, hotSearchContainer) => {
354        if (!keyword) {
355          $(listSearchContainer).removeClass("show").html("")
356          if (hotSearchContainer) {
357            $(hotSearchContainer).addClass("show")
358          }
359          return
360        }
361
362        _this
363          .fetchSearchData(keyword)
364          .done(d => {
365            _this.renderSuggestList(keyword, listSearchContainer, d)
366          })
367          .fail(() => {})
368          .always(() => {
369            $(listSearchContainer).addClass("show")
370            if (hotSearchContainer) {
371              $(hotSearchContainer).removeClass("show")
372            }
373          })
374      }
375
376      this.seaTemplate = c => {
377        const list = Array.isArray(c?.list) ? c.list.slice(0, 20) : []
378        if (list.length === 0) return ""
379
380        return `
381                    <div class="container-search-context">
382                      <div class="search-container">
383                        <div class="container-search-hots container-search-lists">
384                          <div class="rank-list">
385                            ${list
386                              .map(
387                                e => `
388                              <a href="${e.url}" class="rank-card">
389                                <div class="xqbj-icon-search1"></div>
390                                <div class="rank-card-title text-line-ellipsis-1">${e.title ?? ""}</div>
391                              </a>
392                            `
393                              )
394                              .join("")}
395                          </div>
396                        </div>
397                      </div>
398                    </div>
399              `
400      }
401
402      // 初始(mobile)
403      $(doc).on("click", "form#search-form", function () {
404        top.location.href = "/search-page.html"
405      })
406
407      // 输入(mobile)
408      $(doc).on(
409        "input",
410        "#input-mobile-control-key",
411        _this.debounce(function () {
412          const searchRoot = $(this).closest(".search-page-mobile-search, .nav-search-container")
413          const listSearchContainer = searchRoot.find(".container-list-search").get(0)
414          const hotSearchContainer = isSearchPage()
415            ? $(".search-page__panel .container-hot-search").get(0)
416            : searchRoot.find(".container-hot-search").get(0)
417          const keyword = parseKeyword($(this).val(), _this.domparser)
418
419          _this.requestSuggest(keyword, listSearchContainer, hotSearchContainer)
420        }, _this.throttleInterval)
421      )
422
423      // 搜索(mobile)
424      $(doc).on("click", ".input-mobile-search-btn", function () {
425        const keyword = parseKeyword(
426          $(this).closest(".search-page-mobile-header").find("#input-mobile-control-key").val(),
427          _this.domparser
428        )
429        submitSearch(keyword)
430      })
431
432      // xf0714 搜索-键盘(mobile) start
433      $("#input-mobile-control-key").on("keydown", function (event) {
434        if (event.key === "Enter") {
435          event.preventDefault()
436          submitSearch(parseKeyword($(this).val(), _this.domparser))
437        }
438      })
439      // xf0714 搜索-键盘(mobile) end
440
441      // 桌面端导航搜索 -> 跳转二级页面
442      $(doc).on("click", "#navbar .nav-search-container", function (e) {
443        e.preventDefault()
444        e.stopPropagation()
445        if (isSearchPage()) {
446          $("#input-page-control-key").trigger("focus")
447          return
448        }
449        top.location.href = "/search-page.html"
450      })
451
452      // 搜索页 PC 输入联想
453      $(doc).on(
454        "input",
455        "#input-page-control-key",
456        _this.debounce(function () {
457          const keyword = parseKeyword($(this).val(), _this.domparser)
458          const listSearchContainer = $(".search-page__suggest .container-list-search").get(0)
459          const hotSearchContainer = $(".search-page__panel .container-hot-search").get(0)
460          _this.requestSuggest(keyword, listSearchContainer, hotSearchContainer)
461        }, _this.throttleInterval)
462      )
463
464      $(doc).on("click", ".input-page-search-btn", function () {
465        submitSearch(parseKeyword($("#input-page-control-key").val(), _this.domparser))
466      })
467
468      $(doc).on("keydown", "#input-page-control-key", function (e) {
469        if (e.key === "Enter") {
470          e.preventDefault()
471          submitSearch(parseKeyword($(this).val(), _this.domparser))
472        }
473      })
474
475      // 返回
476      $(doc).on("click", ".backbtn", function () {
477        const currentUrl = window.location.href
478
479        if (currentUrl.includes("search-page")) {
480          top.location.href = "/"
481        } else if (
482          window.location.protocol === "file:" ||
483          (!document.referrer && document.referrer.startsWith("file://"))
484        ) {
485          top.location.href = `/`
486        } else if (!document.referrer) {
487          top.location.href = `/`
488        } else {
489          const fallbackUrl = "/"
490          const firstUrl = sessionStorage.getItem("firstNonSearchUrl")
491          if (firstUrl) {
492            top.location.href = firstUrl
493          } else {
494            top.location.href = fallbackUrl
495          }
496        }
497      })
498
499      // 搜索历史收集(mobile and desktop)
500      $(doc).on(
501        "click",
502        ".container-search-tags a, .container-search-lists a, .xqbj-search-tags-list a, .xqbj-search-none a",
503        function (event) {
504          const keywordhtml = _this.domparser.parseFromString(
505            $(event.target)
506              ?.text()
507              ?.replace(/(^\s*)|(\s*$)/g, ""),
508            "text/html"
509          )
510          const keyword = keywordhtml.body.textContent
511          try {
512            $HistoryRecord.add(keyword)
513          } catch (error) {
514            // console.log("历史信息收集失败", error);
515          }
516        }
517      )
518
519      //
520      this.init()
521    }
522
523    // 初始化
524    init() {
525      const _this = this
526      const tpl = _this.hotTemplate(hotRankList)
527
528      $(".search-page__panel .container-hot-search").html(tpl).addClass("show")
529
530      const navHotSearchContainer = $("#navbar .nav-search-container .container-hot-search").get(0)
531      if (navHotSearchContainer && !isSearchPage()) {
532        $(navHotSearchContainer).html(tpl).addClass("show")
533      }
534
535      win?.$HistoryRecord && win?.$HistoryRecord.init()
536
537      if (isSearchPage()) {
538        setTimeout(() => {
539          if (window.innerWidth < 768) {
540            $("#input-mobile-control-key").trigger("focus")
541          } else {
542            $("#input-page-control-key").trigger("focus")
543          }
544        }, 100)
545      }
546    }
547
548    // 搜索请求
549    fetchSearchData(keyword) {
550      const _this = this
551      if (keyword.length <= _this.keyLength) throw new Error("关键词长度必须大于2")
552
553      const data = {
554        q: encodeURIComponent(keyword)
555      }
556
557      return $.ajax({
558        url: `${this.url}`,
559        method: "GET",
560        data
561      })
562    }
563
564    // 热门请求
565    fetchHotData() {
566      const _this = this
567      return $.ajax({
568        url: _this.hoturl,
569        method: "POST"
570      })
571    }
572
573    // 节流
574    debounce(func, delay) {
575      let timer = null
576      return function (...args) {
577        if (timer) clearTimeout(timer)
578        timer = setTimeout(() => {
579          func.apply(this, args)
580          timer = null
581        }, delay)
582      }
583    }
584  }
585
586  // 历史(搜索历史)
587  class HistoryRecord {
588    constructor() {
589      this.key = "__GLOBAL_SEARCH_HISTORY__" // localStorage 的 key
590      this.max = 8 // 最多保存 20 条记录
591      this.listcontainer = "div.history-record" // 列表容器元素
592      this.init() // 初始加载记录
593    }
594
595    // 加载
596    init() {
597      const _this = this
598      const history = JSON.parse(localStorage.getItem(this.key)) || []
599      this.show(history)
600
601      // 事件
602      _this.event()
603    }
604
605    // 事件
606    event() {
607      const _this = this
608      $(doc).on("click", ".on-history-clear", function () {
609        _this.clear()
610      })
611
612      $(doc).on("click", ".on-history-delete", function (e) {
613        e.preventDefault()
614        const keyword = $(this).closest("a").text()
615        _this.del(keyword)
616      })
617    }
618
619    // 显示(操作)
620    show(historys) {
621      const $container = $(this.listcontainer)
622      $container &&
623        $container.each((index, c) => {
624          let tpl = '<div class="no-data">暂无记录</div>'
625          if (historys?.length > 0) {
626            tpl = historys
627              .map(item => `<a href="${buildSearchUrl(item)}"><span class="text-line-ellipsis-1">${item}</span></a>`)
628              .join("")
629          }
630          c.innerHTML = tpl
631        })
632    }
633
634    // 添加
635    add(keyword) {
636      if (!keyword) return
637
638      let history = JSON.parse(localStorage.getItem(this.key)) || []
639
640      // 去重 + 添加到开头 + 限制数量
641      history = [keyword, ...history.filter(item => item !== keyword)].slice(0, this.max)
642
643      localStorage.setItem(this.key, JSON.stringify(history))
644      this.show(history)
645    }
646
647    // 删除
648    del(keyword) {
649      if (!keyword) return
650
651      let history = JSON.parse(localStorage.getItem(this.key)) || []
652
653      // 删除
654      history = history.filter(k => k !== keyword)
655
656      localStorage.setItem(this.key, JSON.stringify(history))
657      this.show(history)
658    }
659
660    // 清空
661    clear() {
662      localStorage.removeItem(this.key)
663      this.show([])
664    }
665  }
666
667  // 初始化
668  document.addEventListener(
669    "DOMContentLoaded",
670    function () {
671      const isSearchPage = window.location.pathname.includes("/search/")
672      const landingKey = "firstNonSearchUrl"
673
674      if (!isSearchPage) {
675        sessionStorage.setItem(landingKey, window.location.href)
676      }
677      win["$NavSearch"] = new NavSearch(
678        "/action/suggest", // 热门接口(废弃)
679        "/action/suggest",
680        500,
681        0 // 搜索接口
682      )
683      win["$SortList"] = new SortList("div#archive", "/action/search_by")
684      win["$HistoryRecord"] = new HistoryRecord()
685    },
686    false
687  )
688})(
689  document,
690  window,
691  window.layer || {
692    msg: function () {},
693    load: function () { return 0 },
694    closeAll: function () {}
695  },
696  window.hotRankList || [],
697  window.keyword || ""
698)

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.