2.1.10 • Published 4 years ago

etccb-utils v2.1.10

Weekly downloads
4
License
MIT
Repository
github
Last release
4 years ago

简介

前端工具库

安装

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

目录

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

参数类型必填说明
targetString目标版本
sourceString要对比的版本,非必填,默认取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引入

参数类型必填说明
cbFunction/undefined回调函数,为空时可恢复(安卓需要恢复onpopstate函数,需要在退出当前页面之前调用)
例子
//阻止
etccb.stopHistoryBack(()=>{
  //do sth
});

//恢复
etccb.stopHistoryBack();

返回目录>>

  • getMonitorParams(eventId, eventType, extra)

    获取监听接口参数

2.0.9引入

参数类型必填说明
eventIdString事件ID
eventTypeNumber事件类型:1:页面访问,2:行为事件,默认为1
extraJson 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引入

参数类型必填说明
cmdString指令名称(更多指令请参考wiki)如:openWithApp
paramJSON 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_strString字符串指令格式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引入

参数类型必填说明
urlString打开的页面地址
titleString打开页面的标题
isEncodingNumberAPP是否需要对“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引入

参数类型必填说明
dateDate/timestamp/String需要传入时间如:new Date()/1483326245000/'2019-06-28'
formatStrString输出格式(请注意大小写)如:yyyy-MM-dd

日期格式

格式说明备注举例
yyyy2017
M不补01
MM补001
W仅周选择器的 format 可用;不补01
WW仅周选择器的 format 可用01
d不补02
dd补002
H小时24小时制;不补03
HH小时24小时制03
h小时12小时制,须和 A 或 a 使用;不补03
hh小时12小时制,须和 A 或 a 使用03
m分钟不补04
mm分钟补004
s不补05
ss补005
例子
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引入

参数类型必填说明
eleObject需要处理dom对象
clsString需要添加处理的class 类名
例子
let el=document.querySelector(".app");
etccb.dom.addClass(el,"my-class-name");

返回目录>>

  • hasClass(ele,cls)

    判断dom元素是否有class

1.0.0引入

参数类型必填说明
eleObjectdom对象
clsStringclass类名
例子
let el=document.querySelector(".app");
etccb.dom.hasClass(el,"my-class-name");// => true/false
返回

Boolean

返回目录>>

  • loadFile(url, type)

    加载js或css

2.0.2引入

参数类型必填说明
urlString链接
typeString加载类型,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引入

参数类型必填说明
eleObject需要处理dom对象
clsString需要移除处理的class 类名
例子
let el=document.querySelector(".app");
etccb.dom.removeClass(el,"my-class-name");

返回目录>>


cookie

  • getCookie(name)

    获取cookie

1.0.0引入

参数类型必填说明
nameStringcookie名称
例子
etccb.cookie.getCookie("token");// => 1a2b3c1d2e3f1a2b3c1d2e3f
返回

token字符串,String

返回目录>>

  • setCookie(name, value, time)

    设置cookie

1.0.0引入 2.0.0调整参数 2.1.10 domain默认值为当前二级域名

参数类型必填说明
nameStringcookie名称
valueStringcookie的值
timeNumber过期天数 (默认365天)
optionsJSON 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引入

参数类型必填说明
nameString需要移除的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引入

参数类型必填说明
keyStringurl参数名称
isDecodeBoolean是否需要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引入

参数类型必填说明
keyStringurl的hash参数名称
例子
etccb.url.queryHashString("version");// => 3.0
返回

url的hash参数值,String

返回目录>>

  • setParam(url, key, value)

    设置url的参数

2.0.0引入

参数类型必填说明
urlStringurl字符串(不需要encode)
keyString参数名
valueString值,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引入

参数类型必填说明
urlStringurl字符串(不需要encode)
dataJson 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

返回目录>>

2.1.9

4 years ago

2.1.10

4 years ago

2.1.8

4 years ago

2.1.7

4 years ago

2.1.6

4 years ago

2.1.4

4 years ago

2.1.3

4 years ago

2.1.2

4 years ago

2.1.1

4 years ago

2.1.0

4 years ago

2.0.9

4 years ago

2.0.8

5 years ago

2.0.7

5 years ago

2.0.6

5 years ago

2.0.5

5 years ago

1.1.2

5 years ago

1.1.1

5 years ago

2.0.4

5 years ago

2.0.3

5 years ago

2.0.2

5 years ago

2.0.1

5 years ago

2.0.0

5 years ago

1.1.0

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago