PageSourceSearch

https://www.xycloud.com/login?ref=https%3A%2F%2Fconsole.xycloud.com%23%2Foverview

html xycloud.com collected 2026-10-09 17:03:30 UTC 70,964 bytes, 1,524 lines download raw bytes

1<html>
2    <head>
3        <meta charset="utf-8" />
4        <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" />
5        <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
6        <meta name="format-detection" content="telephone=no, address=no, email=no" />
7        <meta name="description" content="基于“自建+共建”模式,将分散、异构、多层级的边缘计算资源集合起来,构建了全球首个百万量级节点边缘计算平台。。" />
8        <meta name="keywords" content="登录星域云,星域云官网登录,星域云用户登录,星域云,星域云官网,网心科技" />
9        <!-- 百度站长HTML标签验证 -->
10        <meta name="baidu-site-verification" content="oPxtUFdTTu" />
11        <title>登录 - 星域云官网</title>
12        <link rel="icon" sizes="any" href="//static.xycloud.com/www/assets/img/favicon.ico">
13        <link rel="stylesheet" type="text/css" href="//static.xycloud.com/www/assets/css/css-1.3.9.css" />
14        <link rel="stylesheet" type="text/css" href="//static.xycloud.com/www/assets/css/pagination.css" />
15                    </head>
16    <body>
17        <!-- header -->
18        <div class="hd">
19    <div class="main">
20        <h1 class="logobox"><a class="logo" href="https://www.xycloud.com" title="星域云官网">星域云官网</a></h1>
21        <div class="nav">
22            <ul id="navList" class="navlist">
23                <li data-id="products">
24                    <a class="nav-hover nav-hover-sj" href="javascript:void(0)" >产品</a>
25                    <div class="subnav">
26                        <div class="subnav-listbox">
27                            <div class="subnav-list-unit">
28                                <a href="https://www.xycloud.com/products/edgecomputing">
29                                    <i class="i-toggle-nav i-toggle-ser"></i>
30                                    <i class="i-toggle-nav i-toggle-ser i-toggle-back"></i>
31                                    <h3>星域边缘计算</h3>
32                                    <p>基于云原生技术开放海量边缘计算节点资源</p>
33                                </a>
34                            </div>
35                            <div class="subnav-list-unit">
36                                <a href="https://www.xycloud.com/products/cdn">
37                                    <i class="i-toggle-nav i-toggle-cnt"></i>
38                                    <i class="i-toggle-nav i-toggle-cnt i-toggle-back"></i>
39                                    <h3>星域CDN</h3>
40                                    <p>全新一代的分布式CDN</p>
41                                </a>
42                            <!-- <div class="subnav-btns">
43                                    <a href="https://www.xycloud.com/products/scdn" class="btn-subnav-hot">共享版<img src="//static.xycloud.com/www/assets/img/hot.png" alt="" /></a>
44                                    <a href="https://www.xycloud.com/products/platinumcdn">卓越版</a>
45                                    <a href="https://www.xycloud.com/products/standardcdn">标准版</a>
46                                </div> -->
47                            </div>
48                            <div class="subnav-list-unit">
49                                <a href="https://www.xycloud.com/products/evaluation">
50                                    <i class="i-toggle-nav i-toggle-fn"></i>
51                                    <i class="i-toggle-nav i-toggle-fn i-toggle-back"></i>
52                                    <h3>函数计算</h3>
53                                    <p>高效、轻量、便捷的无服务器应用</p>
54                                </a>
55                            </div>
56                            <div class="subnav-list-unit subnav-list-unit-last">
57                                <a href="https://www.xycloud.com/products/edgestorage">
58                                    <i class="i-toggle-nav i-toggle-est"></i>
59                                    <i class="i-toggle-nav i-toggle-est i-toggle-back"></i>
60                                    <h3>边缘存储</h3>
61                                    <p>安全、海量、高可靠的分布式存储服务</p>
62                                </a>
63                            </div>
64                            <div class="subnav-list-unit subnav-list-unit-last">
65                                <a href="https://www.xycloud.com/products/burrow">
66                                    <i class="i-toggle-nav i-toggle-xytd"></i>
67                                    <i class="i-toggle-nav i-toggle-xytd i-toggle-back"></i>
68                                    <h3>星域通道<span class="i-toggle-est-new"><img src="//static.xycloud.com/www/assets/img/new.png" alt="" /></span></h3>
69                                    <p>
69基于星域无限边缘计算节点的数据传输服务</p>
70                                </a>
71                            </div>
72                        </div>
73                    </div>
74                </li>
75                <!-- <li data-id="example"><a class="nav-hover" href="https://www.xycloud.com/products/example">点播案例</a></li> -->
76                <!-- <li data-id="linktoken"><a class="nav-hover" href="https://www.xycloud.com/linktoken">使用说明</a></li> -->
77                <li data-id="docs"><a class="nav-hover" href="https://docs.xycloud.com">帮助中心</a></li>
78                <li data-id="about"><a class="nav-hover" href="https://www.xycloud.com/about">关于我们</a></li>
79            </ul>
80        </div>
81        <div class="aside-nav">
82            <!-- 未登录可见 -->
83            <dl class="aside-navlist" id="unlogged-aside-nav">
84                <dd><a href="https://www.xycloud.com/login?ref=https%3A%2F%2Fconsole.xycloud.com%23%2Foverview">控制台</a></dd>
85                <dd><a href="https://www.xycloud.com/login" id="login-href">登录</a></dd>
86                <dd><a class="user-regist-link" href="https://www.xycloud.com/register" onclick='_gsq.push(["T","GWD-002889","trackEvent","xycloud","Header-立即注册","pc"]);'>立即注册<img src="//static.xycloud.com/www/assets/img/hot2.gif" alt="" /></a></dd>
87            </dl>
88            <!-- 登录可见 -->
89            <dl class="aside-navlist" id="logged-aside-nav">
90                <dd><a href="https://www.xycloud.com/login?ref=https%3A%2F%2Fconsole.xycloud.com%23%2Foverview">控制台</a></dd>
91                <dd>
92                    <a><i class="i-user"></i><span class="nav-user" id="user-name">用户名称用户名称</span></a>
93                    <div class="user-subbox">
94                        <!-- <a href="#">账户信息</a> -->
95                        <!-- <a href="#">费用中心</a> -->
96                        <a href="https://console.xycloud.com#/account/security">账户信息</a>
97                        <!-- <a href="#">消息中心<span class="msg-num">1</span></a> -->
98                        <!-- <a href="https://console.xycloud.com">控制台</a> -->
99                        <a href="javascript:;" onclick="frameWorkMethods.logout()">退出</a>
100                    </div>
101                </dd>
102            </dl>
103        </div>
104    </div>
105</div>
106
107
108<script type="text/javascript">
109    var href = window.location.href;
110    var index = href.indexOf("xycloud.com/") + 12;
111    var uri = href.substring(index);
112    var uriEncode = "/login?ref=" + encodeURIComponent(uri);
113    var loginHref = document.getElementById("login-href");
114
115    // console.log(href);
116    // console.log(uri);
117    // console.log(uri.indexOf("login"));
118    // console.log(uriEncode);
119
120    //设置菜单高亮;
121    var navLists = document.getElementById("navList").getElementsByTagName("li");
122    if(uri && uri.indexOf("products")===0){
123        siteNav("products");
124    }
125    if(uri && uri.indexOf("linktoken")===0){
126        siteNav("linktoken");
127    }
128    // if(uri&&uri.indexOf(href.indexOf("docs.xycloud.com"))>=0){
129    //     siteNav("doc");
130    // }
131    if(uri && uri.indexOf("about")===0){
132        siteNav("about");
133    }
134    if(uri && uri.indexOf("products/example")===0){
135        siteNav("example");
136    }
137    function siteNav(dataId){
138        var _this;
139        for(var i=0; i<navLists.length; i++){
140            _this = navLists[i];
141            _this.getAttribute("data-id")==dataId ? _this.className = "on" : _this.className = "";
142        }
143    }
144
145    //uri存在 && 非登录页面
146    if (uri && uri.indexOf("login") === -1){
147        // console.log(1111111111111);
148        loginHref.setAttribute('href',uriEncode);
149    };
150
151</script>
151
152
153
154
155        <!-- content -->
156                    
157    <style type="text/css">
158        .main {
159            perspective: 800px;
160        }
161
162        .loginbox {
163            height: 334px;
164            transform-style: preserve-3d;
165            transition: all 0.5s;
166        }
167
168        .loginbox-back {
169            transform: rotateY(180deg);
170        }
171
172        .front {
173            position: absolute;
174            width: 400px;
175            left: 0;
176            top: 0;
177            background: #fff;
178            padding: 35px;
179            box-sizing: border-box;
180            backface-visibility: hidden;
181        }
182
183        .back {
184            position: absolute;
185            left: 0;
186            top: 0;
187            width: 100%;
188            background: #fff;
189            height: 100%;
190            padding: 35px;
191            box-sizing: border-box;
192            transform: rotateY(180deg);
193            backface-visibility: hidden;
194        }
195
196        .form-tit, .inp-ect {
197            backface-visibility: hidden;
198        }
199
200
201        .back-arrow {
202            position: relative;
203            top: -20px;
204            right: 10px;
205            cursor: pointer;
206            color: #666;
207            width: 60px;
208        }
209
210        .regform {
211            width: 100%;
212        }
213
214        #cert-phone-num[disabled] {
215            background: #f5f5f5;
216            cursor: not-allowed;
217            color: #00000040;
218        }
219
220    </style>
221    <div class="wp wp-login">
222        <div class="main">
223            <div class="login-slogan">
224                <h1>
225                    <span>星域云</span>
226                    <small>全球边缘计算创领者</small>
227                </h1>
228            </div>
229            <div class="loginbox">
230                <div class="side front">
231                    <div class="form-tit">
232                        <h3>登录星域云</h3>
233                    </div>
234                    <form class="loginform">
235                        <div class="inp-unit">
236                            <div class="inpbox" id="account-container">
237                                <input
238                                        id="account-input"
239                                        class="itxt"
240                                        type="text"
241                                        placeholder="手机号/邮箱"
242                                        name="account"
243                                        oninput="methods.phoneInputChange()"
244                                />
245                            </div>
246                            <p class="err" id="account-err">error text here</p>
247                        </div>
248                        <div class="inp-unit">
249                            <div class="inpbox" id="password-container">
250                                <input
251                                        class="itxt" type="password"
252                                        placeholder="密码"
253                                        name="password"
254                                        oninput="methods.passwordInputChange()"
255                                        maxlength="20"
256                                        onkeydown="return methods.keyDown(event,'password')"
257                                />
258                            </div>
259                            <p class="err" id="password-err">error text here</p>
260                        </div>
261                        <div class="inp-unit" id="graph-captcha-wrapper" style="display: none;">
262                            <div class="inpbox" id="graph-captcha-container">
263                                <input
264                                        class="itxt"
265                                        type="text"
266                                        placeholder="图形验证码"
267                                        name="graphCaptcha"
268                                        maxlength="4"
269                                        onkeydown="return methods.keyDown(event,'graphCaptcha')"
270                                />
271                                <div class="inp-codebox">
272                                    <img id="graph-captcha-img" src="" alt="点击切换验证码"
273                                         onclick="methods.clickGraphCaptcha()"/>
274                                </div>
275                            </div>
276                            <p class="err" id="graph-captcha-err">error text here</p>
277                        </div>
278                        <div class="inpbtn">
279                            <a class="btn-big" onclick="methods.doLogin()">登录</a>
280                        </div>
281                        <div class="inp-ect">
282                            <p>还没有账号?<a href="https://www.xycloud.com/register">免费注册</a></p>
283                            <span class="abs"><a href="https://www.xycloud.com/retrieve_password/by_phone">忘记密码</a></span>
284                        </div>
285                    </form>
286                </div>
287                <div class="side back">
288    <div class="back-arrow" onclick="methods.toggleLogin()">&lt;&nbsp;返回</div>
289    <div class="form-tit">
290        <h3>短信二次认证</h3>
291    </div>
292    <div class="regform">
293        <div class="inp-unit">
294            <div class="inpbox inpbox-phone" id="cert-phone-container">
295                <div class="area-num">+86</div>
296                <input class="itxt" disabled type="text" id="cert-phone-num" placeholder="手机号码"
297                       name="phone"
298                       maxlength="11"
299                       onpaste="return false"/>
300            </div>
301            <p class="err" id="cert-phone-err">错误信息提示</p>
302        </div>
303
304        <div class="inp-unit" id="cert-phone-captcha-wrapper">
305            <div class="inpbox inpbox-code" id="cert-phone-captcha-container">
306                <input class="itxt" type="text" placeholder="手机验证码"
307                       id="cert-phone-captcha"
308                       maxlength="6"
309                       name="phoneCaptcha"
310                       onkeydown="return certMethods.keyDown(event,'phoneCaptcha')"
311                       oninput="certMethods.inputChange(event,'phoneCaptcha')"
312                       onblur="certMethods.blurFromInput('phoneCaptcha')"
313                       onpaste="return false"/>
314            </div>
315            <div class="inp-codebtn">
316                <a class="btn-code" href="#" id="cert-send-phone-captcha-btn"
317                   onclick="certMethods.sendPhoneCaptcha()">获取手机验证码</a>
318            </div>
319            <p class="err" id="cert-phone-captcha-err">错误信息提示</p>
320            <p class="err-tip">请输入8位包含字母和数字的密码</p>
321            <p class="err-ok" id="cert-phone-captcha-success">短信验证码已发送</p>
322        </div>
323        <div class="inpbtn">
324            <button class="btn-big btn-disable"
325                    type="button"
326                    onClick="certMethods.next()"
327                    id="cert-next-btn"
328                    disabled
329            >登录
330            </button>
331        </div>
332    </div>
333</div>
334
335            </div>
336        </div>
337    </div>
338
339        <!-- footer -->
340        <div class="ft">
341    <div class="main">
342        <div class="ft-top">
343            <div class="ft-menu">
344                <dl class="ft-dl">
345                    <dt>星域云产品</dt>
346                    <dd><a href="https://www.xycloud.com/products/edgecomputing">边缘计算</a></dd>
347                    <dd><a href="https://www.xycloud.com/products/evaluation">函数计算</a></dd>
348                    <dd><a href="https://www.xycloud.com/products/cdn">星域CDN</a></dd>
349                    <dd><a href="https://www.xycloud.com/products/edgestorage">边缘存储</a></dd>
350                    <dd><a href="https://www.xycloud.com/products/burrow">星域通道</a></dd>
351                </dl>
352                <dl class="ft-dl">
353                    <dt>帮助中心</dt>
354                    <dd><a href="https://docs.xycloud.com/products/1/1/1.html">边缘计算</a></dd>
355                    <dd><a href="https://docs.xycloud.com/products/2/1/1.html">函数计算</a></dd>
356                    <dd><a href="https://docs.xycloud.com/products/3/1/1.html">星域CDN</a></dd>
357                    <dd><a href="https://docs.xycloud.com/products/9/1/1.html">边缘存储</a></dd>
358                    <dd><a href="https://docs.xycloud.com/others/8/1.html">相关协议</a></dd>
359                </dl>
360                <dl class="ft-dl">
361                    <dt>快速入口</dt>
362                    <dd><a href="https://www.xycloud.com/login?ref=https%3A%2F%2Fconsole.xycloud.com%23%2Foverview">控制台</a></dd>
363                    <!-- <dd><a href="https://www.xycloud.com/products/example">点播案例</a></dd> -->
364                </dl>
365                <dl class="ft-dl">
366                    <dt>
366关于我们</dt>
367                    <dd><a href="https://www.xycloud.com/about">了解星域云</a></dd>
368                    <dd><a href="https://www.xycloud.com/about#develop">发展历程</a></dd>
369                    <dd><a href="https://www.xycloud.com/about#glory">奖项荣誉</a></dd>
370                    <dd><a href="https://www.xycloud.com/about#news">新闻动态</a></dd>
371                    <dd><a href="https://www.xycloud.com/about#contact">联系我们</a></dd>
372                </dl>
373            </div>
374            <div class="ft-contact">
375                <dl class="ft-dl">
376                    <dt>联系我们</dt>
377                    <dd>邮箱:<a href="mailto:[email protected]">[email protected]</a></dd>
378                    <dd>
379                        <div class="ft-wxcode"><img src="//static.xycloud.com/www/assets/img/company_code.jpg" alt="" /></div>
380                    </dd>
381                </dl>
382            </div>
383        </div>
384        <div class="ft-bot">
385            <p>Copyright&copy;2015-2021 xycloud.com All Rights Reserved 深圳市网心科技有限公司所有&nbsp;&nbsp;&nbsp;&nbsp;
386                <a target="_blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=44030502007600" style="display:inline-block;text-decoration:none;height:20px;line-height:20px;"><img src="//static.xycloud.com/www/assets/img/batb.png" alt="" style="float:left;"/><span style="color:#939393;">粤公网安备 44030502007600号</span></a>
387                &nbsp;&nbsp;
388                <!-- 
388<script id="ebsgovicon" src="https://szcert.ebs.org.cn/govicons.js?id=69f05648-4860-4543-a152-2af5e73a064f&width=18&height=25&type=1" type="text/javascript" charset="utf-8"></script>
388 -->
389                <a href="http://beian.miit.gov.cn" target="_blank" rel="nofollow">粤ICP备14008884号</a>&nbsp;|&nbsp;<a href="https://www.xycloud.com/map">网站地图</a>
390                &nbsp;&nbsp;
391                <a target="_blank" href="https://szcert.ebs.org.cn/69f05648-4860-4543-a152-2af5e73a064f "><img src="//static.xycloud.com/www/assets/img/gongshang.png" style="display:inline-block;text-decoration:none;width:18px;margin-right:1px;"/>工商网监</a>
392            </p>
393        </div>
394    </div>
395</div>
396
397<!--[if lte IE 9]>
398<div class="lowBrowser">
399    <div class="lowBrowser-main">
400        <h3>请升级您的浏览器</h3>
401        <p>Oops! 您的浏览器版本过低,想拥有更好的浏览体验?请下载或使用以下任意一款浏览器~</p>
402        <a href="https://www.google.cn/intl/zh-CN/chrome/" target="_blank" title="谷歌浏览器"><img src="//static.xycloud.com/www/assets/img/download-chrome.png" alt="谷歌浏览器"></a>
403        <a href="http://www.firefox.com.cn/download/" target="_blank" title="火狐浏览器"><img src="//static.xycloud.com/www/assets/img/download-ff.png" alt="火狐浏览器"></a>
404        <a href="https://www.microsoft.com/zh-cn/download/internet-explorer.aspx" target="_blank" title="最新IE浏览器"><img src="//static.xycloud.com/www/assets/img/download-ie.png" alt="最新IE浏览器"></a>
405    </div>
406</div>
407<![endif]-->
408
409        <!-- asidenav -->
410        <div class="asidefixed">
411    <ul class="asidefixed-list">
412        <li><i class="i-feedback" onclick="asideNavMethods.toggleView()">咨询反馈</i></li>
413    </ul>
414</div>
415
416<!-- 反馈浮层 -->
417<div class="pop" id="toggle-view" style="display:none;">
418    <div class="pop-wp">
419        <div class="pop-ani">
420            <div class="pop-tit">
421                <h2>产品咨询与意见反馈</h2>
422                <a href="javascript:;" class="pop-close" title="关闭" onclick="asideNavMethods.hideView()">关闭</a>
423            </div>
424            <div class="pop-main">
425                <form action="" class="feedback-form">
426                    <div class="inp-unit" id="type-container">
427                        <h3>反馈类型<em>*</em></h3>
428                        <div class="inp-lbls">
429                            <div class="radiobox">
430                                <input id="p1" name="category" type="radio" value=1 /><label for="p1">产品咨询</label>
431                            </div>
432                            <div class="radiobox">
433                                <input id="p2" name="category" type="radio" value=2 /><label for="p2">需求建议</label>
434                            </div>
435                            <div class="radiobox">
436                                <input id="p3" name="category" type="radio" value=3 /><label for="p3">bug反馈</label>
437                            </div>
438                        </div>
439                    </div>
440                    <p class="err" id="type-err">请选择反馈类型</p>
441                    <div class="inp-unit">
442                        <h3>内容描述<em>*</em></h3>
443                        <div class="inpbox-txtarea" id="content-container">
444                            <textarea class="txtarea" id="content" placeholder="请详细描述您要咨询的内容,以便我们为您提供更好的服务" name="content"></textarea>
445                        </div>
446                        <p class="err" id="content-err">请填写反馈内容</p>
447                    </div>
448                    <h3>联系方式<em>*</em></h3>
449                    <div class="inp-unit inpbox-pdleft">
450                        <div class="inpbox" id="name-container">
451                            <h4>姓名</h4>
452                            <input type="text" class="itxt"
453                                maxlength="20"
454                                name="name"
455                                oninput="asideNavMethods.inputChange(event,'name')"
456                            />
457                        </div>
458                        <p class="err" id="name-err">姓名不得超过20个字符</p>
459                    </div>
460                    <div class="inp-unit inpbox-pdleft">
461                        <div class="inpbox" id="email-container">
462                            <h4>联系邮箱</h4>
463                            <input type="text" class="itxt" name="email"
464                                onblur="asideNavMethods.inputChange(event,'email')"/>
465                        </div>
466                        <p class="err" id="email-err">邮箱格式不正确</p>
467                    </div>
468                    <div class="inp-unit inpbox-pdleft">
469                        <div class="inpbox" id="phone-container">
470                            <h4>手机号码</h4>
471                            <input type="text" class="itxt" name="phone"
472                            maxlength="11"
473                            onkeydown="return asideNavMethods.keyDown(event,'phone')"
474                            onblur="asideNavMethods.inputChange(event,'phone')"
475                            onpaste="return false"/>
476                        </div>
477                        <p class="err" id="phone-err">手机格式不正确</p>
478                    </div>
479                    <div class="inp-unit inpbox-pdleft">
480                        <div class="inpbox inp-code" id="code-container">
481                            <h4>验证码</h4>
482                            <input type="text" class="itxt" name="code"
483                                maxlength="4"
484                                onkeydown="return asideNavMethods.keyDown(event,'graphCaptcha')"
485                                onpaste="return false"/>
486                            <div class="inp-codebox">
487                                <img src="//static.xycloud.com/www/assets/img/code.jpg" alt=""
488                                id="graph-code-img"
489                                onclick="asideNavMethods.clickGraphCaptcha()"/>
490                            </div>
491                        </div>
492                        <p class="err" id="code-err">验证码不正确</p>
493                    </div>
494                    <div class="inpbtn">
495                        <a href="#" class="btn" onclick="asideNavMethods.submit()">提交</a>
496                    </div>
497                </form>
498            </div>
499        </div>
500    </div>
501</div>
502
503<!-- 反馈成功 -->
504<div class="pop" id="toggle-success" style="display:none;">
505    <div class="pop-wp">
506        <div class="pop-ani">
507            <div class="pop-tit">
508                <h2>产品咨询与意见反馈</h2>
509                <a href="javascript:;" class="pop-close" title="关闭"
510                    onclick="asideNavMethods.hideSuccessView()">关闭</a>
511            </div>
512            <div class="pop-main">
513                <div class="pop-feedback-success">
514                    <i class="i-success"></i>
515                    <h3>提交成功</h3>
516                    <p>感谢您的反馈!我们将会认真查看并做出回复。<br/>如需提交更详细的反馈内容,请通过邮件的方式发送到<br/>[email protected]。</p>
517                </div>
518                <div class="inpbtn">
519                    <a href="#" class="btn" onclick="asideNavMethods.hideSuccessView()">确定</a>
520                </div>
521            </div>
522        </div>
523    </div>
524</div>
525
526<!-- 反馈失败 -->
527<div class="pop" id="toggle-fail" style="display:none;">
528    <div class="pop-wp">
529        <div class="pop-ani">
530            <div class="pop-tit">
531                <h2>产品咨询与意见反馈</h2>
532                <a href="javascript:;" class="pop-close" title="关闭"
533                    onclick="asideNavMethods.hideFailView()">关闭</a>
534            </div>
535            <div class="pop-main">
536                <div class="pop-txt">
537                    <div class="tbbox">
538                        <div class="tbcell">
539                            <p>您提交过于频繁,请稍后再试。</p>
540                        </div>
541                    </div>
542                    <div class="inpbtn">
543                        <a href="#" class="btn" onclick="asideNavMethods.hideFailView()">确定</a>
544                    </div>
545                </div>
546            </div>
547        </div>
548    </div>
549</div>
550
551<!-- 
551<script type="text/javascript" src="//static.xycloud.com/www/assets/js/lib/jQuery-3.3.1.min.js"></script>
vendor: 1 bytes, line 551
551
552<script type="text/javascript" src="//static.xycloud.com/www/assets/js/lib/jQuery.pjax.js"></script>
552 -->
553    </body>
554    
554<script type="text/javascript" src="//static.xycloud.com/www/assets/js/lib/es6-promise.auto.min.js"></script>
554
555    
555<script type="text/javascript" src="//static.xycloud.com/www/assets/js/lib/jQuery-3.3.1.min.js"></script>
555
556    
556<script type="text/javascript" src="//static.xycloud.com/www/assets/js/lib/jQuery.pjax.js"></script>
556
557    
557<script type="text/javascript" src="//static.xycloud.com/www/assets/js/lib/swiper.js"></script>
557
558    
558<script type="text/javascript" src="//static.xycloud.com/www/assets/js/lib/pagecontrol.js"></script>
558
559    
559<script type="text/javascript" src="//static.xycloud.com/www/assets/js/lib/countUp.js"></script>
559
560    
560<script src="https://cdn.hcharts.cn/highcharts/highcharts.js"></script>
560
561    
561<script type="text/javascript">
562        Highcharts.setOptions({ global: { useUTC: false } });
563    </script>
563
564    
564<script type="text/javascript" src="//static.xycloud.com/www/assets/js/lib/echarts.min.js"></script>
564
565    
565<script type="text/javascript" src="https://fcrc-video.xycdn.com/h5/test/xyvod.js"></script>
565
566    
566<script src="https://webrtc.github.io/adapter/adapter-latest.js"></script>
566
567    
567<script type="text/javascript" src="//static.xycloud.com/www/assets/js/xyp2p-20190319.js"></script>
567
568    
568<script type="text/javascript" src="//static.xycloud.com/www/assets/js/util.js"></script>
568
569    
569<script src="https://cdnjs.cloudflare.com/ajax/libs/jsencrypt/3.0.0-beta.1/jsencrypt.min.js"></script>
569
570    <!-- 百度统计新版异步统计代码获取 -->
571    
571<script>
572    var _hmt = _hmt || [];
573    (function() {
574        var hm = document.createElement("script");
575        hm.src = "https://hm.baidu.com/hm.js?a82fbe6b647c12f654153b50bdf91d5e";
576        var s = document.getElementsByTagName("script")[0];
577        s.parentNode.insertBefore(hm, s);
578    })();
579    //Gridsum tracking code begin.
580    var _gsq = _gsq || [];
581    (function () {
582      var s = document.createElement('script');
583      s.type = 'text/javascript';
584      s.async = true;
585      s.src = (location.protocol == 'https:' ? 'https://ssl.' : 'http://static.') + 'gridsumdissector.com/js/Clients/GWD-002889-C0ED43/gs.js';
586      var    firstScript = document.getElementsByTagName('script')[0];
587      firstScript.parentNode.insertBefore(s, firstScript);
588    })();
589    </script>
589
590    
590<script type="text/javascript">
591    var asideNavMethods = (function($){
592        var dataObj = {}
593        var sendPhoneCaptchaAlready = false;
594        return {
595            init: function () {
596                this.changeGraphCaptcha();
597            },
598            toggleView: function() {
599                $("#toggle-view").show();
600                this.changeGraphCaptcha();
601            },
602            hideView: function(){
603                this.clearInput();
604                $("#toggle-view").hide();
605            },
606            showSuccessView: function(){
607                $("#toggle-success").show();
608            },
609            hideSuccessView: function(){
610                $("#toggle-success").hide();
611            },
612            showFailView: function(){
613                $("#toggle-fail").show();
614            },
615            hideFailView: function(){
616                $("#toggle-fail").hide();
617            },
618            //获取表单数据
619            getFromData: function(){
620                var data = $('.feedback-form').serializeArray();
621                dataObj = $util.ArrayDataFormatter(data);
622                return dataObj;
623            },
624            inputChange: function(event,type){
625                if(type === "name"){
626                    this.checkName();
627                }else if(type === "email"){
628                    var dataObj = this.getFromData();
629                    var email = dataObj.email;
630                    if(email === ""){
631                        this.hideEmailTip();
632                    }else if(email !== ""){
633                        this.checkEmail()
634                    }
635                }else if(type === 'phone'){
636                    var dataObj = this.getFromData();
637                    var phone = dataObj.phone;
638                    if(phone === ""){
639                        this.hidePhoneTip();
640                    }else if(phone !== ""){
641                        this.checkPhone();
642                    }
643                }else if(type === 'graphCaptcha'){
644                    var dataObj = this.getFromData();
645                    var code = dataObj.code;
646                    if(code === ""){
647                        this.hideGraphCaptchaTip();
648                    }else if(code !== ""){
649                        this.checkGraphCaptcha();
650                    }
651                }
652            },
653            checkName: function(){
654                var dataObj = this.getFromData();
655                var name = dataObj.name;
656                if(name.length > 20){
657                    this.showNameTip('姓名不得超过20个字符')
658                    return false;
659                }else{
660                    this.hideNameTip()
661                }
662                return true;
663            },
664            checkEmail: function(){
665                var dataObj = this.getFromData();
666                var email = dataObj.email;
667                if (!$util.checkByRegular("email", email)){
668                    this.showEmailTip('邮箱格式不正确')
669                    return false;
670                }else{
671                    this.hideEmailTip()
672                    return true;
673                }
674            },
675            checkPhone: function(){
676                var dataObj = this.getFromData();
677                var phone = dataObj.phone;
678                if (!$util.checkByRegular("phone", phone)){
679                    this.showPhoneTip('手机格式不正确')
680                    return false;
681                }else{
682                    this.hidePhoneTip()
683                    return true;
684                }
685            },
686            checkGraphCaptcha: function(){
687                var dataObj = this.getFromData();
688                var code = dataObj.code;
689                if (code.length != 4){
690                    this.showGraphCaptchaTip('验证码不正确')
691                    return false;
692                }else{
693                    this.hideGraphCaptchaTip()
694                    return true;
695                }
696            },
697            // 姓名错误提示
698            showNameTip: function(msg){
699                $util.showInputTip("error","#name-container","#name-err", msg);
700            },
701            hideNameTip: function(){
702                $util.hideInputTip("error","#name-container","#name-err");
703            },
704            // 邮箱错误提示
705            showEmailTip: function(msg){
706                $util.showInputTip("error","#email-container","#email-err", msg);
707            },
708            hideEmailTip: function(){
709                $util.hideInputTip("error","#email-container","#email-err");
710            },
711            // 手机号码错误提示
712            showPhoneTip: function(msg){
713                $util.showInputTip("error","#phone-container","#phone-err", msg);
714            },
715            hidePhoneTip: function(){
716                $util.hideInputTip("error","#phone-container","#phone-err");
717            },
718            //点击切换验证码的图片
719            clickGraphCaptcha: function(){
720                $(".regform").find("input[name='code']").focus();
721                this.changeGraphCaptcha();
722            },
723            showGraphCaptchaTip: function(msg){
724                $util.showInputTip("error","#code-container","#code-err",msg);
725            },
726            hideGraphCaptchaTip: function(msg){
727                $util.hideInputTip("error","#code-container","#code-err");
728            },
729            showTypeTip: function(msg){
730                $util.showInputTip("error","#type-container","#type-err",msg);
731            },
732            hideTypeTip: function(msg){
733                $util.hideInputTip("error","#type-container","#type-err");
734            },
735            showContentTip: function(msg){
736                $util.showInputTip("error","#content-container","#content-err",msg);
737            },
738            hideContentTip: function(msg){
739                $util.hideInputTip("error","#content-container","#content-err");
740            },
741            //切换图片验证码的ajax
742            changeGraphCaptcha: function(){
743                var captchaUrl = "https://www.xycloud.com/captcha" + "?biz=user_feedback" + "&t=" + (new Date().getTime());
744                $("#graph-code-img").attr("src",captchaUrl)
745            },
746            //监听键盘按下
747            keyDown: function(event,type){
748                var keyCode = event.keyCode;
749                var dataObj = this.getFromData();
750                //操作键位
751                if ($util.keyCodeIsOperate(keyCode)){
752                    return true;
753                };
754                if (type === "phone"){
755                    if($util.keyCodeIsNum(keyCode)){
756                        return true;
757                    };
758                    return false;
759                }
760                else if (type === "graphCaptcha"){
761                    //图形验证码input 只允许输入数字和字母
762                    var graphCaptcha = dataObj.graphCaptcha;
763                    if($util.keyCodeIsNum(keyCode)){
764                        return true;
765                    };
766                    if($util.keyCodeIsLetter(keyCode)){
767                        return true;
768                    };
769                    return false;
770                }
771                return true;
772            },
773            verify: function(){
774                // showGraphCaptchaTip
775                var dataObj = this.getFromData();
776                // 1. 校验反馈类型
777                if(!dataObj.category){
778                    this.showTypeTip('请选择反馈类型')
779                    return false;
780                }else{
781                    this.hideTypeTip()
782                }
783                // 2. 校验内容描述
784                if(!dataObj.content || ($util.trimSpace(dataObj.content)).length == 0){
785                    this.showContentTip('请填写反馈内容')
786                    return false;
787                }else{
788                    this.hideContentTip()
789                }
790                // 3. 校验姓名
791                if(!dataObj.name || ($util.trimSpace(dataObj.name)).length == 0){
792                    this.showNameTip('请填写您的姓名')
793                    return false;
794                }
795                else if(!this.checkName()){
796                    return false;
797                }
798
799                // 4. 校验邮箱
800                if(!dataObj.email || ($util.trimSpace(dataObj.email)).length == 0){
801                    this.showEmailTip('请填写您的联系邮箱')
802                    return false;
803                }
804                else if(!this.checkEmail()){
805                    return false;
806                }
807                // 5. 校验手机号码
808                if(!dataObj.phone || ($util.trimSpace(dataObj.phone)).length == 0){
809                    this.showPhoneTip('请填写您的手机号码')
810                    return false;
811                }
812                else if(!this.checkPhone()){
813                    return false;
814                }
815                // 6. 验证码校验
816                if(!dataObj.code || ($util.trimSpace(dataObj.phone)).length == 0){
817                    this.showGraphCaptchaTip('请填写验证码')
818                    return false
819                }else if(!this.checkGraphCaptcha()){
820                    return false
821                }
822                this.hideTypeTip()
823                this.hideContentTip()
824                this.hideNameTip()
825                this.hideEmailTip()
826                this.hidePhoneTip()
827                return true;
828            },
829            submit: function(){
830
831                if(this.verify()){
832                    var self = this;
833                    var dataObj = this.getFromData();
834                    var data = {
835                        category: Number(dataObj.category),
836                        code: dataObj.code,
837                        content: dataObj.content,
838                        email: dataObj.email,
839                        name: dataObj.name,
840                        phone: Number(dataObj.phone)
841                    }
842                    var url = "/feedback";
843                    var successCallback = function(res){
844                        var resCode = res.code;
845                        // return false;
846                        //注册成功
847                        if (resCode === 0){
848                            self.clearInput();
849                            self.hideView()
850                            self.showSuccessView()
851                        }
852                        else if (resCode === 1){
853                            var error = res.error;
854                            if(error && error.res == 0){
855                                self.clearInput();
856                                self.hideView()
857                                self.showFailView()
858                            }else{
859                                self.showGraphCaptchaTip('图形验证码不正确')
860                                self.changeGraphCaptcha();
861                            }
862                        }
863                    };
864                    var type = "POST";
865                    $util.doAjax(url, type, data, successCallback);
866                }
867
868            },
869            clearInput: function(){
870                $(".pop-main form input[name!=category]").each(function(){
871                    $(this).val('')
872                })
873                $('input[name=category]:checked').prop('checked', false).removeAttr('checked');
874                $("#content").val('')
875                this.hideTypeTip()
876                this.hideContentTip()
877                this.hideNameTip()
878                this.hideEmailTip()
879                this.hidePhoneTip()
880                this.hideGraphCaptchaTip()
881            }
882        }
883    })(jQuery);
884
885    $(document).ready(function(){
886        asideNavMethods.init();
887    });
888</script>
888
889
890            
890<script type="text/javascript">
891    var frameWorkMethods = (function($){
892        return {
893            init: function () {
894                // console.log($("#console-link"));
895                this.queryUserProfile();
896            },
897            //查询user-profile
898            queryUserProfile: function() {
899                // return false;
900                var mySelf = this;
901                var url = $pars.ajaxDomain + "/auth/profile";
902                var type = "POST";
903                var consoleUrl = "https://console.xycloud.com";
904                var successCallback = function(res){
905                    var resCode = res.code;
906                    // console.log(JSON.stringify(res));
907                    //未登录
908                    if (resCode === 1){
909                        $("#unlogged-aside-nav").show();
910                    }
911                    //登录
912                    else if (resCode === 0){
913                        var result = res.result;
914                        var userName = result.name || result.mobile || result.email;
915                        $pars.userInfo = result;
916                        // console.log(result);
917                        $("#logged-aside-nav").show();
918                        $("#user-name").text(userName);
919                    };
920                    // return false;
921                };
922
923                $util.doAjax(url,type,null,successCallback);
924            },
925            //logout
926            logout: function(){
927                // console.log(1211111111111)
928                var mySelf = this;
929                var url = $pars.ajaxDomain + "/auth/logout";
930                var type = "POST";
931                var csrfToken = 'uzB6xlBD3NtE85OaQmY4vTX0CJLDThhBUxJeSRzz';
932                var postData = { _csrf_token: csrfToken };
933                var loadScript = function(url, callback)
934                {
935                    var script = document.createElement("script");
936                    script.type = "text/javascript";
937                    if (script.readyState) { //IE
938                        script.onreadystatechange = function() {
939                            if (script.readyState == "loaded" ||
940                                script.readyState == "complete" ) {
941                                script.onreadystatechange = null;
942                                callback();
943                            }
944                        };
945                    } else {
946                        script.onload = function() {
947                            callback();
948                        };
949                    }
950                    script.onerror = function() {
951                        callback();
952                    };
953                    script.src = url;
954                    document.body.appendChild(script);
955                };
956                var successCallback = function(res){
957                    var resCode = res.code;
958                    if (resCode === 0){
959                        console.log("退出成功!");
960                        if (res.result.platform && res.result.platform.length > 0) {
961                            var platform = res.result.platform, callback = function() {
962                                var url = platform.shift();
963                                if (url)
964                                {
965                                    loadScript(url, callback);
966                                } else {
967                                    window.location.href = '/';
968                                }
969                            };
970                            loadScript(platform.shift(), callback);
971                        } else {
972                            window.location.href = '/';
973                        }
974                    };
975                };
976                $util.doAjax(url, type, postData, successCallback);
977            },
978        }
979    })(jQuery);
980
981    $(document).ready(function(){
982        frameWorkMethods.init();
983    });
984
985    </script>
985
986    
987    
987<script type="text/javascript">
988
989        var methods = (function ($) {
990
991            var needGraphCaptcha = false;
992            var ref = "/";
993
994            return {
995                init: function () {
996                    var mySelf = this;
997                    $("#account-input").focus();
998                    mySelf.checkNeedGraphCaptcha();
999                    mySelf.getRefFromUrl();
1000                    $(document).keyup(function (event) {
1001                        if (event.keyCode == 13) {
1002                            mySelf.doLogin();
1003                        }
1004                    });
1005                },
1006                //校验是否需要验证码
1007                checkNeedGraphCaptcha: function () {
1008                    needGraphCaptcha = false;
1009                    // needGraphCaptcha = true;
1010                    // console.log(needGraphCaptcha);
1011                    //需要验证码
1012                    if (needGraphCaptcha) {
1013                        needGraphCaptcha = true;
1014                        this.showGraphCaptcha();
1015                        this.changeGraphCaptcha();
1016                    }
1017                    //不需要验证码
1018                    else {
1019                        needGraphCaptcha = false;
1020                        this.hideGraphCaptcha();
1021                    }
1022                },
1023                //从url中解析出ref,即登录成功后跳回该页面
1024                getRefFromUrl: function () {
1025                    // var href = window.location.href;
1026                    var search = window.location.search;
1027                    var searchFormat = decodeURIComponent(search);
1028                    var index = searchFormat.indexOf("ref=") + 4;
1029                    var url = searchFormat.substring(index);
1030
1031                    const reg1 = /^\//
1032                    const reg2 = /^(https:\/\/)(.*)(.xycloud.com){1}/
1033                    if (search && (reg1.test(url) || reg2.test(url) || url == "")) {
1034                        ref = url;
1035                    }
1036                    ;
1037                },
1038                phoneInputChange: function () {
1039
1040                },
1041                passwordInputChange: function () {
1042
1043                },
1044                //监听键盘按下
1045                keyDown: function (event, type) {
1046                    var mySelf = this;
1047                    var keyCode = event.keyCode;
1048                    var dataObj = mySelf.getFromData();
1049                    // console.log(keyCode);
1050                    // console.log(type);
1051
1052                    // console.log(dataObj);
1053                    //操作键位
1054                    if ($util.keyCodeIsOperate(keyCode)) {
1055                        return true;
1056                    }
1057
1058                    if (type === "password") {
1059                        // console.log(11111111111)
1060                        if (keyCode === 13) {
1061                            mySelf.doLogin();
1062                        }
1063                    } else if (type === "graphCaptcha") {
1064                        //图形验证码input 只允许输入数字和字母
1065                        var graphCaptcha = dataObj.graphCaptcha;
1066                        // console.log(graphCaptcha);
1067                        // console.log($util.keyCodeIsNum(keyCode))
1068                        // console.log($util.keyCodeIsLetter(keyCode))
1069                        // if (graphCaptcha.length > 3){
1070                        //     return false;
1071                        // };
1072                        if ($util.keyCodeIsNum(keyCode)) {
1073                            return true;
1074                        }
1075                        if ($util.keyCodeIsLetter(keyCode)) {
1076                            return true;
1077                        }
1078
1079                        return false;
1080                    } else {
1081                        return true;
1082                    }
1083
1084                },
1085                //账号提示
1086                showAccountTip: function (msg) {
1087                    $util.showInputTip("error", "#account-container", "#account-err", msg);
1088                },
1089                //密码提示
1090                showPasswordTip: function (msg) {
1091                    $util.showInputTip("error", "#password-container", "#password-err", msg);
1092                },
1093                //图形验证码提示
1094                showGraphCaptchaTip: function (msg) {
1095                    $util.showInputTip("error", "#graph-captcha-container", "#graph-captcha-err", msg);
1096                },
1097                //展示图形验证码
1098                showGraphCaptcha: function () {
1099                    $("#graph-captcha-wrapper").slideDown(300);
1100                },
1101                //隐藏图形验证码
1102                hideGraphCaptcha: function () {
1103                    $("#graph-captcha-wrapper").slideUp(300);
1104                },
1105                //隐藏所有错误tip
1106                hideAllInputTip: function () {
1107                    $util.hideInputTip("error", "#account-container", "#account-err");
1108                    $util.hideInputTip("error", "#password-container", "#password-err");
1109                    $util.hideInputTip("error", "#graph-captcha-container", "#graph-captcha-err");
1110                },
1111                //点击切换验证码的图片
1112                clickGraphCaptcha: function () {
1113                    var mySelf = this;
1114                    $(".loginbox").find("input[name='graphCaptcha']").focus();
1115                    mySelf.changeGraphCaptcha();
1116                },
1117                //点击切换验证码
1118                changeGraphCaptcha: function () {
1119                    console.log("切换验证码");
1120                    var captchaUrl = "https://www.xycloud.com/captcha" + "?biz=login" + "&t=" + (new Date().getTime());
1121                    $("#graph-captcha-img").attr("src", captchaUrl)
1122                },
1123                //获取表单数据
1124                getFromData: function () {
1125                    var data = $('.loginform').serializeArray();
1126                    dataObj = $util.ArrayDataFormatter(data);
1127                    return dataObj;
1128                },
1129                //表单提交校验
1130                validate: function () {
1131                    var mySelf = this;
1132                    var dataObj = mySelf.getFromData();
1133                    var account = dataObj.account;
1134                    var password = dataObj.password;
1135                    var graphCaptcha = dataObj.graphCaptcha;
1136                    // console.log(password)
1137
1138                    this.hideAllInputTip();
1139                    //phone和email校验同时失败
1140                    if (!$util.checkByRegular("phone", account) && !$util.checkByRegular("email", account)) {
1141                        console.log("前端校验出错 phone和email校验同时失败");
1142                        this.showAccountTip("邮箱或手机格式错误,请修改");
1143                        return false;
1144                    }
1145
1146                    //密码少于6位
1147                    if (password.length < 6) {
1148                        console.log("前端校验出错 密码少于6位");
1149                        this.showPasswordTip("密码不能少于6位");
1150                        return false;
1151                    }
1152
1153                    if (needGraphCaptcha && graphCaptcha.length !== 4) {
1154                        console.log('前端校验出错 graphCaptcha长度不正确!');
1155                        this.showGraphCaptchaTip("图形验证码错误,请重新输入");
1156                        return false;
1157                    }
1158
1159                    return true;
1160                },
1161                //登录
1162                doLogin: function () {
1163                    var mySelf = this;
1164                    var dataObj = mySelf.getFromData();
1165                    var validateRes = this.validate();
1166                    console.log('校验的结果是 ' + validateRes);
1167                    // console.log(data);
1168
1169                    if (!validateRes) {
1170                        return false;
1171                    }
1172                    
1173                    var encrypt = new JSEncrypt();
1174                    var publicKey = "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsdGZnCYAAtqildtbMoYV\nwQ8p5GO6arj1sUXJHT5SdE2HEjANLEE84Nv6zqJMMMNw5FeRYA0XKbWykNJF1Qj8\n7NyIcPsd\/YQBCub2WU0W+kvio261rL2GiXT0CAtQHhc8ylwVXJ6w602pf751bRTM\nNiiEwWbTWVYOMPqUFWuljxJc\/uNm+M1RdOCZYe6XB7Dvwxf7O53OYrcKVQX2K+fT\nmvNLraYh3ZLdIM1Kj2lloQFYqrSMZinzimdZT4nHK+\/akhr7Mqpprt5ETRHmy8+Y\nT+8O+HNb0uDFheWiVCWwy7KlcMGzWcgfJ9uQ0mJuN4vRss1vcEemcrrM1rZiyHd4\n4wIDAQAB\n-----END PUBLIC KEY-----";
1175                    var csrfToken = 'uzB6xlBD3NtE85OaQmY4vTX0CJLDThhBUxJeSRzz';
1176                    encrypt.setPublicKey(publicKey);
1177
1178                    var url = $pars.ajaxDomain + "/auth/login";
1179                    var type = "POST";
1180                    // 整体加密postData
1181                    var rawData = {
1182                        account: dataObj.account,
1183                        password: dataObj.password,
1184                        type: 'valid',
1185                    };
1186                    if (needGraphCaptcha) {
1187                        rawData["code"] = dataObj.graphCaptcha;
1188                    }
1189                    var encryptedData = encrypt.encrypt(JSON.stringify(rawData));
1190                    var postData = { d: encryptedData,  _csrf_token: csrfToken };
1191
1192                    var loadScript = function (url, callback) {
1193                        var script = document.createElement("script");
1194                        script.type = "text/javascript";
1195                        if (script.readyState) { //IE
1196                            script.onreadystatechange = function () {
1197                                if (script.readyState == "loaded" ||
1198                                    script.readyState == "complete") {
1199                                    script.onreadystatechange = null;
1200                                    callback();
1201                                }
1202                            };
1203                        } else {
1204                            script.onload = function () {
1205                                callback();
1206                            };
1207                        }
1208                        script.onerror = function () {
1209                            callback();
1210                        };
1211                        script.src = url;
1212                        document.body.appendChild(script);
1213                    };
1214
1215                    var successCallback = function (res) {
1216                        var resCode = res.code;
1217                        //登录成功
1218                        if (resCode === 0) {
1219                            console.log("登录成功");
1220                            if (res.result.platform.length > 0) {
1221                                var platform = res.result.platform, callback = function () {
1222                                    var url = platform.shift();
1223                                    // console.log(url)
1224                                    if (url) {
1225                                        loadScript(url, callback);
1226                                    } else {
1227                                        window.location.href = ref;
1228                                    }
1229                                };
1230                                loadScript(platform.shift(), callback);
1231                            } else {
1232                                window.location.href = ref;
1233                            }
1234                        } else if (resCode === 1) {
1235                            var error = res.error;
1236                            for (var type in error) {
1237                                var msg = error[type];
1238                                if (type === 'email') {
1239                                    mySelf.showAccountTip(msg);
1240                                } else if (type === 'password') {
1241                                    mySelf.showPasswordTip(msg);
1242                                } else if (type === 'graphCaptcha') {
1243                                    needGraphCaptcha = true;
1244                                    mySelf.showGraphCaptcha();
1245                                    mySelf.showGraphCaptchaTip("图形验证码错误,请重新输入");
1246                                } else {
1247                                    console.log('未识别的错误类型' + JSON.stringify(res))
1248                                }
1249                            }
1250                            mySelf.changeGraphCaptcha();
1251
1252                        }
1253                    };
1254
1255                    $util.doAjax(url, type, postData, successCallback, function (res) {
1256                        if (res.code === 3) {
1257                            mySelf.toggleLogin();
1258                            $('#cert-phone-num').val(dataObj.account);
1259
1260                        }
1261                    });
1262                },
1263                toggleLogin: function () {
1264                    $(".loginbox").toggleClass('loginbox-back');
1265                },
1266            }
1267        })(jQuery);
1268
1269        $(document).ready(function () {
1270            methods.init();
1271        });
1272
1273    </script>
1273
1274
1275        
1276    
1276<script type="text/javascript">
1277        var certMethods = (function ($) {
1278            var dataObj = {};
1279            var sendPhoneCaptchaAlready = false;
1280            var ref = "/";
1281            return {
1282                init: function () {
1283                    // $("#cert-phone-captcha-wrapper").show();
1284                },
1285                //手机提示
1286                showPhoneTip: function (msg) {
1287                    $util.showInputTip("error", "#cert-phone-container", "#cert-phone-err", msg);
1288                },
1289                //手机验证码提示
1290                showPhoneCaptchaTip: function (msg) {
1291                    $util.showInputTip("error", "#cert-phone-captcha-container", "#cert-phone-captcha-err", msg);
1292                },
1293                //监听键盘按下
1294                keyDown: function (event, type) {
1295                    var keyCode = event.keyCode;
1296                    //操作键位
1297                    if ($util.keyCodeIsOperate(keyCode)) {
1298                        return true;
1299                    }
1300                    if (type === "phoneCaptcha") {
1301                        //手机验证码input 只允许输入数字
1302                        if ($util.keyCodeIsNum(keyCode)) {
1303                            return true;
1304                        }
1305                        return false;
1306                    }
1307
1308                    return true;
1309                },
1310                //动态监听 手机和图形验证码的改变
1311                inputChange: function (event, type) {
1312                    if (type === "phoneCaptcha") {
1313                        var dataObj = this.getFromData();
1314                        var phoneCaptcha = dataObj.phoneCaptcha;
1315                        if (phoneCaptcha.length === 6) {
1316                            this.blurFromInput('phoneCaptcha')
1317                        } else {
1318                            $util.disableButton("#cert-next-btn");
1319                        }
1320                    }
1321                },
1322                //发送手机验证码
1323                sendPhoneCaptcha: function () {
1324                    var mySelf = this;
1325                    //禁用发短信验证码按钮
1326                    $util.disableButton("#cert-send-phone-captcha-btn");
1327                    $("#cert-send-phone-captcha-btn").text("发送中");
1328                    //发送手机验证码 ajax
1329                    mySelf.sendPhoneCaptchaAjax();
1330                },
1331
1332                //发送手机验证码 ajax
1333                sendPhoneCaptchaAjax: function () {
1334                    var mySelf = this;
1335                    var url = $pars.ajaxDomain + "/security/verify/mobile/code";
1336                    var type = "POST";
1337                    var dataObj = mySelf.getFromData();
1338                    var count = 60;
1339                    var timer = null;
1340                    var postData = {
1341                        phone: dataObj.phone,
1342                        biz: 'security',
1343                    };
1344
1345                    var successCallback = function (res) {
1346                        console.log("发送手机验证码结果:", res);
1347                        var resCode = res.code;
1348                        if (resCode === 0) {
1349                            $("#cert-phone-captcha-wrapper").show();
1350                            $(".regform").find("input[name='phoneCaptcha']").focus();
1351                            $util.hideInputTip("error", "#cert-phone-captcha-container", "#cert-phone-captcha-err");
1352                            $util.showInputTip("success", "#cert-phone-captcha-container", "#cert-phone-captcha-success", "短信已发送");
1353                            sendPhoneCaptchaAlready = true;
1354                            //倒计时
1355                            var countDown = function () {
1356                                var text = count + "s后重新获取";
1357                                $("#cert-send-phone-captcha-btn").text(text);
1358                                if (count == 0) {
1359                                    clearTimeout(timer);
1360                                    //启用发短信验证码按钮
1361                                    $util.enableButton("#cert-send-phone-captcha-btn");
1362                                    $("#cert-send-phone-captcha-btn").text("重新获取验证码");
1363                                    $util.hideInputTip("success", "#cert-phone-captcha-container", "#cert-phone-captcha-success");
1364                                } else {
1365                                    count--;
1366                                    timer = setTimeout(function () {
1367                                        countDown();
1368                                    }, 1000);
1369                                }
1370                            };
1371                            countDown();
1372                        } else {
1373                            console.log('发送手机验证码错误', res);
1374                        }
1375                    };
1376
1377                    $util.doAjax(url, type, postData, successCallback);
1378                },
1379                //表单input失焦
1380                blurFromInput: function (type) {
1381                    var mySelf = this;
1382                    var dataObj = mySelf.getFromData();
1383
1384                    if (type === "phoneCaptcha") {
1385                        var phoneCaptcha = dataObj.phoneCaptcha;
1386                        if (phoneCaptcha === "") {
1387                            $util.hideInputTip("error", "#cert-phone-captcha-container", "#cert-phone-captcha-err");
1388                        } else if (phoneCaptcha !== "") {
1389                            mySelf.checkInputByRegular("phoneCaptcha");
1390                        }
1391                    }
1392
1393                },
1394                //正则检查输入内容,未通过则显示错误提示,通过则隐藏错误提示
1395                checkInputByRegular: function (type) {
1396                    var dataObj = this.getFromData();
1397
1398                    if (type === "phoneCaptcha") {
1399                        var phoneCaptcha = dataObj.phoneCaptcha;
1400                        if (phoneCaptcha.length !== 6) {
1401                            this.showPhoneCaptchaTip("手机验证码错误,请重新输入");
1402                            $util.disableButton("#cert-next-btn");
1403                            return false;
1404                        } else {
1405                            $util.hideInputTip("error", "#cert-phone-captcha-container", "#cert-phone-captcha-err");
1406                            // 设置按钮可点
1407                            $util.enableButton("#cert-next-btn");
1408                            return true;
1409                        }
1410                    }
1411                },
1412                next: function () {
1413                    var mySelf = this;
1414                    if (!sendPhoneCaptchaAlready) {
1415                        this.showPhoneCaptchaTip('请先获取手机验证码');
1416                        return;
1417                    }
1418
1419                    var url = $pars.ajaxDomain + "/security/verify/mobile/code";
1420                    var type = "GET";
1421                    var verifyCodeData = {
1422                        biz: 'security',
1423                        phone: dataObj.phone,
1424                        phoneCaptcha: dataObj.phoneCaptcha,
1425                    };
1426
1427                    console.log('校验手机号', verifyCodeData);
1428
1429                    var successCallback = function (res) {
1430                        var resCode = res.code;
1431                        if (resCode === 0) {
1432                            mySelf.certLogin();
1433                        } else {
1434                            mySelf.showPhoneCaptchaTip('手机验证码错误');
1435                            $util.hideInputTip("success", "#cert-phone-captcha-container", "#cert-phone-captcha-success");
1436                        }
1437                    };
1438
1439                    $util.doAjax(url, type, verifyCodeData, successCallback);
1440                },
1441                certLogin: function () {
1442                    var mySelf = this;
1443                    var url = $pars.ajaxDomain + "/auth/login";
1444                    var type = "POST";
1445                    var loginObj = methods.getFromData();
1446
1447                    var encrypt = new JSEncrypt();
1448                    var publicKey = "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsdGZnCYAAtqildtbMoYV\nwQ8p5GO6arj1sUXJHT5SdE2HEjANLEE84Nv6zqJMMMNw5FeRYA0XKbWykNJF1Qj8\n7NyIcPsd\/YQBCub2WU0W+kvio261rL2GiXT0CAtQHhc8ylwVXJ6w602pf751bRTM\nNiiEwWbTWVYOMPqUFWuljxJc\/uNm+M1RdOCZYe6XB7Dvwxf7O53OYrcKVQX2K+fT\nmvNLraYh3ZLdIM1Kj2lloQFYqrSMZinzimdZT4nHK+\/akhr7Mqpprt5ETRHmy8+Y\nT+8O+HNb0uDFheWiVCWwy7KlcMGzWcgfJ9uQ0mJuN4vRss1vcEemcrrM1rZiyHd4\n4wIDAQAB\n-----END PUBLIC KEY-----";
1449                    var csrfToken = 'uzB6xlBD3NtE85OaQmY4vTX0CJLDThhBUxJeSRzz';
1450                    encrypt.setPublicKey(publicKey);
1451
1452                    var loginData = {
1453                        account: loginObj.account,
1454                        password: loginObj.password,
1455                        biz: 'security',
1456                        phone: dataObj.phone,
1457                        phoneCaptcha: dataObj.phoneCaptcha,
1458                    };
1459
1460                    var encryptedData = encrypt.encrypt(JSON.stringify(loginData));
1461                    var postData = { d: encryptedData,  _csrf_token: csrfToken };
1462                    
1463                    var loadScript = function (url, callback) {
1464                        var script = document.createElement("script");
1465                        script.type = "text/javascript";
1466                        if (script.readyState) { //IE
1467                            script.onreadystatechange = function () {
1468                                if (script.readyState == "loaded" ||
1469                                    script.readyState == "complete") {
1470                                    script.onreadystatechange = null;
1471                                    callback();
1472                                }
1473                            };
1474                        } else {
1475                            script.onload = function () {
1476                                callback();
1477                            };
1478                        }
1479                        script.onerror = function () {
1480                            callback();
1481                        };
1482                        script.src = url;
1483                        document.body.appendChild(script);
1484                    };
1485
1486                    var successCallback = function (res) {
1487                        var resCode = res.code;
1488                        if (resCode === 0) {
1489                            console.log("登录成功");
1490                            if (res.result.platform.length > 0) {
1491                                var platform = res.result.platform, callback = function () {
1492                                    var url = platform.shift();
1493                                    if (url) {
1494                                        loadScript(url, callback);
1495                                    } else {
1496                                        window.location.href = ref;
1497                                    }
1498                                };
1499                                loadScript(platform.shift(), callback);
1500                            } else {
1501                                window.location.href = ref;
1502                            }
1503                        } else {
1504                            mySelf.showPhoneCaptchaTip('登录失败');
1505                            $util.hideInputTip("success", "#cert-phone-captcha-container", "#cert-phone-captcha-success");
1506                        }
1507                    };
1508
1509                    $util.doAjax(url, type, postData, successCallback);
1510                },
1511                getFromData: function () {
1512                    // 获取表单数据
1513                    dataObj.phone = $('#cert-phone-num').val();
1514                    dataObj.phoneCaptcha = $('#cert-phone-captcha').val();
1515                    return dataObj
1516                }
1517            }
1518        })(jQuery);
1519
1520        $(document).ready(function () {
1521            certMethods.init();
1522        });
1523    </script>
1523
1524</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.