etccb-utils v2.1.10
简介
前端工具库
安装
npm方式
//两种方式
npm install etccb-utils --save
或
yarn add etccb-utils
//引入使用
import etccb from "etccb-utils"
或
let etcb=require("etccb-utils").default
let el=document.querySelector(".app")
let flag=etccb.hasClass(el,'active')
console.log(flag)
CDN 方式
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<div class="app active"></div>
</body>
<!--引入工具库-->
<script src="https://unpkg.com/etccb-utils/dist/index.js"></script>
<script>
window.onload=function(){
let etccb = etccb.default;
let el=document.querySelector(".app")
let flag=etccb.hasClass(el,'active')
console.log(flag)
}
</script>
</html>
版本更新
- 2.0.0 (当前)
- 1.x.x中版本更新指令:npm install etccb-utils@^1.0.0 --save
- 1.0.x小版本更新指令:npm install etccb-utils@~1.0.0 --save
目录
- polyfill
- etccb
api 详细文档
基础函数
createUUID()
生成36位UUID
2.0.0引入
例子
etccb.createUUID();// => 4e0b9c2b-b570-4e08-8411-28962e57094f
返回
String
isGEVersion(target, source)
判断当前版本是否大于等于目标版本,source >= target//true,GE = Greater Equal
1.0.0引入isEqualEqVersion 2.0.0版本改名为isGEVersion
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
target | String | 是 | 目标版本 |
source | String | 否 | 要对比的版本,非必填,默认取URL或cookies的clientVersion 值 |
例子
etccb.isGEVersion("3.2.0");// => 当前版本是3.2.0以下为true
etccb.isGEVersion("3.2.0","1.0.0");// => false
etccb.isGEVersion("3.2.0","4.0.0");// => true
返回
是否大于等于某版本,Boolean
stopHistoryBack(resume)
阻止历史返回,主流浏览器通用
2.0.0引入
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
cb | Function/undefined | 否 | 回调函数,为空时可恢复(安卓需要恢复onpopstate函数,需要在退出当前页面之前调用) |
例子
//阻止
etccb.stopHistoryBack(()=>{
//do sth
});
//恢复
etccb.stopHistoryBack();
getMonitorParams(eventId, eventType, extra)
获取监听接口参数
2.0.9引入
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
eventId | String | 是 | 事件ID |
eventType | Number | 否 | 事件类型:1:页面访问,2:行为事件,默认为1 |
extra | Json Object | 否 | 额外数据 |
例子
let params = getMonitorParams('Event_1');
let params = getMonitorParams('Event_2', 2);
let params = getMonitorParams('Event_2', 2, {text: '点击'});
//返回结果
{
"model": "unknown",//设备(H5是unknown)
"ds": "1125*2436",//屏幕长宽
"loc": "",//定位(H5是空值)
"event_type": 1,//事件类型:1:页面访问,2:行为事件
"etcos": 2,//操作系统,1:安卓,2:IOS
"version": "3.0.0",//优先获取链接的clientVersion,其次是cookie的clientVersion
"token": "",//优先获取链接的token,其次是cookie的token
"url": "",//当前URL
"event_name": "Event_1",//事件ID
"ua": "",//navigator.userAgent
"distinct_id": "XXXXXXXX-XXXX",//APP内获取url或cookie的distinct_id,APP外自动生成UUID存入cookie中
"nfc_type": "",//NFC类型(H5是空值)
"source": 3,//来源,number,3:APP内部H5,4:APP外部H5
"extra": "{text:'点击'}"
}
CMD
goToApp(cmd,param)
执行指令
1.0.0引入
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
cmd | String | 是 | 指令名称(更多指令请参考wiki)如:openWithApp |
param | JSON Object | 否 | 参数,默认-1如:{ url:'http://baidu.com',title:'ET前端',isEncoding:0 } |
例子
etccb.cmd.goToApp("closeWebView");
// 或
etccb.cmd.goToApp("openWithApp",{
url:'http://baidu.com',
title:'百度',
isEncoding:0
})
goToAppStr(cmd_str)
执行指令(字符串模式)
2.0.0引入
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
cmd_str | String | 是 | 字符串指令格式1:jumpCmd==cmd:params格式2:cmd:params |
例子
etccb.cmd.goToAppStr("jumpCmd==openWithApp:title==='ET前端'");
etccb.cmd.goToAppStr("openWithApp:title==='ET前端'");
etccb.cmd.goToAppStr("closeWebView:-1");
openWithApp(url, title, isEncoding)
打开一个新的webview
1.0.0引入
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
url | String | 是 | 打开的页面地址 |
title | String | 否 | 打开页面的标题 |
isEncoding | Number | 否 | APP是否需要对“url”参数编码,1表示编码 0表示不编码注:如果传1,url不会在H5进行编码 |
例子
etccb.cmd.openWithApp('http://etccbao.com',"ET前端");
//或
etccb.cmd.openWithApp('http://etccbao.com',"ET前端",1);
closeWebView()
关闭 webview
引入版本 1.0.0
例子
etccb.cmd.closeWebView();
date
formatDate(date,formatStr)
日期时间格式化
1.0.0引入
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
date | Date/timestamp/String | 是 | 需要传入时间如:new Date()/1483326245000/'2019-06-28' |
formatStr | String | 是 | 输出格式(请注意大小写)如:yyyy-MM-dd |
日期格式
格式 | 说明 | 备注 | 举例 |
---|---|---|---|
yyyy | 年 | 2017 | |
M | 月 | 不补0 | 1 |
MM | 月 | 补0 | 01 |
W | 周 | 仅周选择器的 format 可用;不补0 | 1 |
WW | 周 | 仅周选择器的 format 可用 | 01 |
d | 日 | 不补0 | 2 |
dd | 日 | 补0 | 02 |
H | 小时 | 24小时制;不补0 | 3 |
HH | 小时 | 24小时制 | 03 |
h | 小时 | 12小时制,须和 A 或 a 使用;不补0 | 3 |
hh | 小时 | 12小时制,须和 A 或 a 使用 | 03 |
m | 分钟 | 不补0 | 4 |
mm | 分钟 | 补0 | 04 |
s | 秒 | 不补0 | 5 |
ss | 秒 | 补0 | 05 |
例子
etccb.date.formatDate(new Date(),'yyyy-MM-dd');// => 2019-06-28
etccb.date.formatDate(new Date(),'yyyy-MM-dd hh:mm:ss');// => 2019-06-28 01:02:03
etccb.date.formatDate("2019-06-28",'yyyy-MM-dd');// => 2019-06-28
etccb.date.formatDate(1483326245000,'yyyy-MM-dd');// => 2019-06-28
返回
格式化后的时间格式 String
dom
addClass(ele,cls)
给dom元素添加class
1.0.0引入
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
ele | Object | 是 | 需要处理dom对象 |
cls | String | 是 | 需要添加处理的class 类名 |
例子
let el=document.querySelector(".app");
etccb.dom.addClass(el,"my-class-name");
hasClass(ele,cls)
判断dom元素是否有class
1.0.0引入
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
ele | Object | 是 | dom对象 |
cls | String | 是 | class类名 |
例子
let el=document.querySelector(".app");
etccb.dom.hasClass(el,"my-class-name");// => true/false
返回
Boolean
loadFile(url, type)
加载js或css
2.0.2引入
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
url | String | 是 | 链接 |
type | String | 否 | 加载类型,js/css,默认js |
例子
etccb.loadFile('xxx.com/h5.js').then((readyState)=>{
console.log(readyState);
});
etccb.loadFile('xxx.com/h5.js','js').then((readyState)=>{
console.log(readyState);
});
etccb.loadFile('xxx.com/h5.css','css').then((readyState)=>{
console.log(readyState);
});
返回
Promise
removeClass(ele,cls)
移除dom元素的class
1.0.0引入
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
ele | Object | 是 | 需要处理dom对象 |
cls | String | 是 | 需要移除处理的class 类名 |
例子
let el=document.querySelector(".app");
etccb.dom.removeClass(el,"my-class-name");
cookie
getCookie(name)
获取cookie
1.0.0引入
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | String | 是 | cookie名称 |
例子
etccb.cookie.getCookie("token");// => 1a2b3c1d2e3f1a2b3c1d2e3f
返回
token字符串,String
setCookie(name, value, time)
设置cookie
1.0.0引入 2.0.0调整参数 2.1.10 domain默认值为当前二级域名
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | String | 是 | cookie名称 |
value | String | 是 | cookie的值 |
time | Number | 否 | 过期天数 (默认365天) |
options | JSON Object | 否 | 其他选项(2.0.0)默认:{domain:【当前二级域名】,path:'/'} |
例子
etccb.cookie.setCookie("token","123456xxx",3);
//2.0.0支持
etccb.cookie.setCookie("token","123456xxx",3, {domain:'xxx.cn',path:'/demo'});
removeCookie(name)
移除cookie
1.0.0引入
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | String | 是 | 需要移除的cookie名称 |
例子
etccb.cookie.removeCookie("token");
URL
getPostfix()
截取当前host有没有后缀,如-dev 、-test等,1.0.0版本是getPrefix()
2.0.0引入
例子
console.log(etccb.url.getPostfix())// => '-test'
返回
host后缀,String,如-dev 、-test
queryString(key,isDecode)
获取url 参数
1.0.0引入
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
key | String | 是 | url参数名称 |
isDecode | Boolean | 否 | 是否需要decode解码,默认false,也支持number类型,0不解码,1解码 |
例子
etccb.url.queryString("version");// => 3.0
etccb.url.queryString("backUrl");// => https%3A%2F%2Fwww.xxx.com
etccb.url.queryString("backUrl",1);// => https://www.xxx.com
返回
url参数的值,String
queryHashString(key)
获取url的hash参数
1.0.0引入
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
key | String | 是 | url的hash参数名称 |
例子
etccb.url.queryHashString("version");// => 3.0
返回
url的hash参数值,String
setParam(url, key, value)
设置url的参数
2.0.0引入
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
url | String | 是 | url字符串(不需要encode) |
key | String | 是 | 参数名 |
value | String | 否 | 值,null/undefined(不填)不添加参数或删除当前参数,其他情况都会新增参数 |
例子
//新增
etccb.url.setParam("a.com","b","1");// => a.com?b=1
etccb.url.setParam("a.com?c=1","b",false);// => a.com?c=1&b=false
etccb.url.setParam("a.com?c=1","b","2");// => a.com?c=1&b=2
etccb.url.setParam("a.com?c=1","b",0);// => a.com?c=1&b=0
etccb.url.setParam("a.com?c=1","b","");// => a.com?c=1&b=
//替换
etccb.url.setParam("a.com?b=1","b","2");// => a.com?b=2
//删除
etccb.url.setParam("a.com?b=1","b",null);// => a.com
etccb.url.setParam("a.com?b=1","b",undefined);// => a.com
etccb.url.setParam("a.com?b=1","b");// => a.com
//不添加
etccb.url.setParam("a.com?c=1","b",null);// => a.com?c=1
etccb.url.setParam("a.com?c=1","b",undefined);// => a.com?c=1
etccb.url.setParam("a.com?c=1","b");// => a.com?c=1
返回
拼接后的url
setParams(url, data)
批量设置url的参数
2.0.0引入
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
url | String | 是 | url字符串(不需要encode) |
data | Json Object | 是 | 值对象,仅支持只有一级的json |
例子
etccb.url.setParams("a.com",{b:1,c:2});// => a.com?b=1&c=2,其他情况参考setParam函数
返回
拼接后的url
getSLD()
获取二级域名,SLD = Second-level domain
2.1.7引入
例子
//当前域名:localhost
etccb.url.getSLD();// => xxx
//当前域名:127.0.0.1
etccb.url.getSLD();// => xxx
//当前域名:vip.xxx.com
etccb.url.getSLD();// => xxx
//当前域名:vip-test.xxx.com
etccb.url.getSLD();// => xxx
//当前域名:api.card.xxx.com
etccb.url.getSLD();// => xxx
返回
拼接后的url
user-agent 浏览器标识
isAndroid()
是否为安卓浏览器环境
1.0.0引入
例子
etccb.ua.isAndroid();// => true/false
返回 Boolean
isChebao()
是否为车宝环境
1.0.0引入
例子
etccb.ua.isChebao();// => true/false
返回 Boolean
isIos()
是否为IOS浏览器环境
1.0.0引入
例子
etccb.ua.isIos();// => true/false
返回 Boolean
isIphoneX()
是否为iphoneX 浏览器环境
1.0.0引入
例子
etccb.ua.isIphoneX()// => true/false
返回 Boolean
isWeixin()
是否为微信浏览器环境
1.0.0引入
例子
etccb.ua.isWeixin()// => true/false
返回 Boolean
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago