Skip to content

Commit f45cc51

Browse files
封装了一些常用的js功能
1 parent 004402d commit f45cc51

13 files changed

+381
-35
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/*
2+
* @Author: csxiaoyaojianxian
3+
* @Date: 2017-02-16 18:30:52
4+
* @Last Modified by: csxiaoyaojianxian
5+
* @Last Modified time: 2017-02-16 18:32:26
6+
*/
7+
8+
'use strict';
9+
var App = angular.module('app', []);
10+
// 自定义服务
11+
App.factory('format', ['$filter', function ($filter) {
12+
function format(arg) {
13+
var s = '';
14+
for(var key in arg) {
15+
s += key + '=' + arg[key] + '&';
16+
}
17+
s = s.slice(0, -1);
18+
return s;
19+
}
20+
function author() {
21+
alert('by CS逍遥剑仙');
22+
}
23+
return {
24+
format: format,
25+
author: author
26+
}
27+
}]);

0 封装/csxiaoyao-cookie.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/*
2+
* @Author: csxiaoyaojianxian
3+
* @Date: 2017-02-16 16:30:52
4+
* @Last Modified by: SUNSHINE
5+
* @Last Modified time: 2017-03-08 17:11:32
6+
*/
7+
var Cookie = function(){
8+
//设置cookie
9+
var setCookie = function(cname, cvalue, exdays) {
10+
var d = new Date();
11+
d.setTime(d.getTime() + (exdays*24*60*60*1000));
12+
document.cookie = cname + "=" + cvalue + "; " + "expires="+d.toUTCString();
13+
}
14+
//获取cookie
15+
var getCookie = function(name)
16+
{
17+
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
18+
if(arr=document.cookie.match(reg)){return (arr[2]);}
19+
else{return null;}
20+
}
21+
//清除cookie
22+
var clearCookie = function(name) {
23+
setCookie(name, "", -1);
24+
}
25+
return {
26+
setCookie:function(cname, cvalue, exdays){
27+
setCookie(cname, cvalue, exdays);
28+
},
29+
getCookie:function(name){
30+
return getCookie(name);
31+
},
32+
clearCookie:function(name){
33+
clearCookie(name);
34+
}
35+
}
36+
}

0 封装/csxiaoyao-response.js

Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
/*
2+
* @Author: csxiaoyaojianxian
3+
* @Date: 2017-02-16 18:30:52
4+
* @Last Modified by: SUNSHINE
5+
* @Last Modified time: 2017-03-08 19:40:52
6+
*/
7+
var responseCode = function(code){
8+
switch(code){
9+
// 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码
10+
case 100:
11+
// 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
12+
return {msg:"继续"};
13+
break;
14+
case 101:
15+
// 请求者已要求服务器切换协议,服务器已确认并准备切换。
16+
return {msg:"切换协议"};
17+
break;
18+
// 2xx (成功) 表示成功处理了请求的状态代码。
19+
case 200:
20+
// 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。
21+
return {msg:"成功"};
22+
break;
23+
case 201:
24+
// 请求成功并且服务器创建了新的资源。
25+
return {msg:"已创建"};
26+
break;
27+
case 202:
28+
// 服务器已接受请求,但尚未处理。
29+
return {msg:"已接受"};
30+
break;
31+
case 203:
32+
// 服务器已成功处理了请求,但返回的信息可能来自另一来源。
33+
return {msg:"非授权信息"};
34+
break;
35+
case 204:
36+
// 服务器成功处理了请求,但没有返回任何内容。
37+
return {msg:"无内容"};
38+
break;
39+
case 205:
40+
// 服务器成功处理了请求,但没有返回任何内容。
41+
return {msg:"重置内容"};
42+
break;
43+
case 206:
44+
// 服务器成功处理了部分 GET 请求。
45+
return {msg:"部分内容"};
46+
break;
47+
// 3xx (重定向) 表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。
48+
case 300:
49+
// 针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。
50+
return {msg:"多种选择"};
51+
break;
52+
case 301:
53+
// 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
54+
return {msg:"永久移动"};
55+
break;
56+
case 302:
57+
// 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
58+
return {msg:"临时移动"};
59+
break;
60+
case 303:
61+
// 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
62+
return {msg:"查看其他位置"};
63+
break;
64+
case 304:
65+
// 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。
66+
return {msg:"未修改"};
67+
break;
68+
case 305:
69+
// 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。
70+
return {msg:"使用代理"};
71+
break;
72+
case 307:
73+
// 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
74+
return {msg:"临时重定向"};
75+
break;
76+
// 4xx(请求错误) 这些状态代码表示请求可能出错,妨碍了服务器的处理。
77+
case 400:
78+
// 服务器不理解请求的语法。
79+
return {msg:"错误请求"};
80+
break;
81+
case 401:
82+
// 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
83+
return {msg:"未授权"};
84+
break;
85+
case 403:
86+
// 服务器拒绝请求。
87+
return {msg:"禁止"};
88+
break;
89+
case 404:
90+
// 服务器找不到请求的网页。
91+
return {msg:"未找到"};
92+
break;
93+
case 405:
94+
// 禁用请求中指定的方法。
95+
return {msg:"方法禁用"};
96+
break;
97+
case 406:
98+
// 无法使用请求的内容特性响应请求的网页。
99+
return {msg:"不接受"};
100+
break;
101+
case 407:
102+
// 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。
103+
return {msg:"需要代理授权"};
104+
break;
105+
case 408:
106+
// 服务器等候请求时发生超时。
107+
return {msg:"请求超时"};
108+
break;
109+
case 409:
110+
// 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。
111+
return {msg:"冲突"};
112+
break;
113+
case 410:
114+
// 如果请求的资源已永久删除,服务器就会返回此响应。
115+
return {msg:"已删除"};
116+
break;
117+
case 411:
118+
// 服务器不接受不含有效内容长度标头字段的请求。
119+
return {msg:"需要有效长度"};
120+
break;
121+
case 412:
122+
// 服务器未满足请求者在请求中设置的其中一个前提条件。
123+
return {msg:"未满足前提条件"};
124+
break;
125+
case 413:
126+
// 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。
127+
return {msg:"请求实体过大"};
128+
break;
129+
case 414:
130+
// 请求的 URI(通常为网址)过长,服务器无法处理。
131+
return {msg:"请求的 URI 过长"};
132+
break;
133+
case 415:
134+
// 请求的格式不受请求页面的支持。
135+
return {msg:"不支持的媒体类型"};
136+
break;
137+
case 416:
138+
// 如果页面无法提供请求的范围,则服务器会返回此状态代码。
139+
return {msg:"请求范围不符合要求"};
140+
break;
141+
case 417:
142+
// 服务器未满足”期望”请求标头字段的要求。
143+
return {msg:"未满足期望值"};
144+
break;
145+
// 5xx(服务器错误) 这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。
146+
case 500:
147+
// 服务器遇到错误,无法完成请求。
148+
return {msg:"服务器内部错误"};
149+
break;
150+
case 501:
151+
// 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。
152+
return {msg:"尚未实施"};
153+
break;
154+
case 502:
155+
// 服务器作为网关或代理,从上游服务器收到无效响应。
156+
return {msg:"错误网关"};
157+
break;
158+
case 503:
159+
// 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。
160+
return {msg:"服务不可用"};
161+
break;
162+
case 504:
163+
// 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
164+
return {msg:"网关超时"};
165+
break;
166+
case 505:
167+
// 服务器不支持请求中所用的 HTTP 协议版本。
168+
return {msg:"HTTP 版本不受支持"};
169+
break;
170+
default:
171+
return {msg:"未知状态"};
172+
break;
173+
}
174+
return 0;
175+
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
* @Author: SUNSHINE
33
* @Date: 2017-02-03 20:56:50
44
* @Last Modified by: SUNSHINE
5-
* @Last Modified time: 2017-02-03 20:59:47
5+
* @Last Modified time: 2017-03-08 19:18:48
66
*/
7-
function scroll() { // 开始封装自己的scrollTop
7+
function scroll() {
88
if(window.pageYOffset !== undefined) { // ie9+ 高版本浏览器
99
// 因为 window.pageYOffset 默认的是0,所以需要判断
1010
return {

0 封装/csxiaoyao-url.js

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
/*
2+
* @Author: csxiaoyaojianxian
3+
* @Date: 2017-02-16 18:30:52
4+
* @Last Modified by: SUNSHINE
5+
* @Last Modified time: 2017-03-08 17:12:04
6+
*/
7+
function Url(){
8+
var url = window.location.href;
9+
var urlHandler = function(value){
10+
if(value){
11+
url = value;
12+
}
13+
return url;
14+
}
15+
// URL编码解码
16+
var encodeUrl = function(url){return encodeURIComponent(url);};
17+
var decodeUrl = function(url){return decodeURIComponent(url);};
18+
// 获取get参数,$_GET["csxiaoyao"]
19+
var $_GET = function(){
20+
var u = url.split("?");
21+
if(typeof(u[1]) == "string"){
22+
u = u[1].split("&");
23+
var get = {};
24+
for(var i in u){
25+
var j = u[i].split("=");
26+
get[j[0]] = decodeUrl(j[1]);
27+
}
28+
return get;
29+
} else {
30+
return {};
31+
}
32+
};
33+
// 获取相对路径
34+
var getUrlRelativePath = function(){
35+
var arrUrl = url.split("//");
36+
var start = arrUrl[1].indexOf("/");
37+
var relUrl = arrUrl[1].substring(start);
38+
//去除参数部分
39+
if(relUrl.indexOf("?") != -1){
40+
relUrl = relUrl.split("?")[0];
41+
}
42+
return relUrl;
43+
};
44+
return {
45+
url:function(value){
46+
return urlHandler(value);
47+
},
48+
$_GET:$_GET(),
49+
get:function(param){
50+
return $_GET()[param];
51+
},
52+
getRelativePath:function(){
53+
return getUrlRelativePath();
54+
},
55+
encodeUrl:function(url){
56+
return encodeUrl(url);
57+
},
58+
decodeUrl:function(url){
59+
return decodeUrl(url);
60+
}
61+
}
62+
}

0 封装/csxiaoyao-useragent.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/*
2+
* @Author: csxiaoyaojianxian
3+
* @Date: 2017-02-16 18:30:52
4+
* @Last Modified by: SUNSHINE
5+
* @Last Modified time: 2017-03-08 17:21:26
6+
*/
7+
function UserAgent(){
8+
//判断语言
9+
var language = (navigator.browserLanguage||navigator.language).toLowerCase();
10+
//判断是否为移动端
11+
function isMobile() {
12+
var userAgentInfo = navigator.userAgent;
13+
var Agents = ["Android","iPhone","SymbianOS","Windows Phone","iPad","iPod"];
14+
var flag = false;
15+
for (var v = 0; v < Agents.length; v++) {
16+
if (userAgentInfo.indexOf(Agents[v]) > 0) {
17+
flag = true;
18+
break;
19+
}
20+
}
21+
return flag;
22+
}
23+
return {
24+
language:language,
25+
isMobile:isMobile()
26+
}
27+
}

0 封装/test.html

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8">
5+
</head>
6+
<body>
7+
8+
<script src="csxiaoyao-url.js"></script>
9+
<script src="csxiaoyao-cookie.js"></script>
10+
<script src="csxiaoyao-useragent.js"></script>
11+
<script>
12+
/**
13+
* url
14+
*/
15+
var Url = Url();
16+
// 获取url
17+
console.log(Url.url());//http://localhost/url/test.html?csxiaoyao=%E5%AD%99%E5%89%91%E5%B3%B0
18+
// 设置url
19+
console.log(Url.url("http//www.csxiaoyao.com/blog/index.php?csxiaoyao=CS逍遥剑仙"));//http//www.csxiaoyao.com/blog/index.php?csxiaoyao=CS逍遥剑仙
20+
// 获取get参数
21+
console.log(Url.$_GET);//Object {csxiaoyao: "CS逍遥剑仙"}
22+
console.log(Url.$_GET["csxiaoyao"]);//CS逍遥剑仙
23+
console.log(Url.get("csxiaoyao"));//CS逍遥剑仙
24+
// url编码解码
25+
console.log(Url.decodeUrl(Url.encodeUrl("CS逍遥剑仙")));//CS逍遥剑仙
26+
// 获取相对路径
27+
console.log(Url.getRelativePath());// /blog/index.php
28+
/**
29+
* cookie
30+
*/
31+
var Cookie = Cookie();
32+
Cookie.setCookie("csxiaoyao","sunshine",3);//csxiaoyao:sunshine,有效期3天
33+
console.log(Cookie.getCookie("csxiaoyao"));//sunshine
34+
Cookie.clearCookie("csxiaoyao");
35+
/**
36+
* userAgent
37+
*/
38+
var UserAgent = UserAgent();
39+
console.log(UserAgent.language);//zh-cn
40+
console.log(UserAgent.isMobile);//false
41+
42+
</script>
43+
</body>
44+
</html>

0 commit comments

Comments
 (0)