npm.io
2.1.10 • Published 6 years ago

etccb-utils

Licence
MIT
Version
2.1.10
Deps
1
Size
298 kB
Vulns
0
Weekly
0

简介

前端工具库

安装

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 详细文档

基础函数

生成36位UUID

2.0.0引入

例子
etccb.createUUID();// => 4e0b9c2b-b570-4e08-8411-28962e57094f
返回

String

返回目录>>

判断当前版本是否大于等于目标版本,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

返回目录>>

阻止历史返回,主流浏览器通用

2.0.0引入

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

//恢复
etccb.stopHistoryBack();

返回目录>>

获取监听接口参数

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

执行指令

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
})

返回目录>>

执行指令(字符串模式)

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");

返回目录>>

打开一个新的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);

返回目录>>

关闭 webview

引入版本 1.0.0

例子
etccb.cmd.closeWebView();

返回目录>>


date

日期时间格式化

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

给dom元素添加class

1.0.0引入

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

返回目录>>

判断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

返回目录>>

加载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

返回目录>>

移除dom元素的class

1.0.0引入

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

返回目录>>


获取cookie

1.0.0引入

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

token字符串,String

返回目录>>

设置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'});

返回目录>>

移除cookie

1.0.0引入

参数 类型 必填 说明
name String 需要移除的cookie名称
例子
etccb.cookie.removeCookie("token");

返回目录>>


URL

截取当前host有没有后缀,如-dev 、-test等,1.0.0版本是getPrefix()

2.0.0引入

例子
console.log(etccb.url.getPostfix())// => '-test'
返回

host后缀,String,如-dev 、-test

返回目录>>

获取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

返回目录>>

获取url的hash参数

1.0.0引入

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

url的hash参数值,String

返回目录>>

设置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

返回目录>>

批量设置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

返回目录>>

获取二级域名,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 浏览器标识

是否为安卓浏览器环境

1.0.0引入

例子
etccb.ua.isAndroid();// => true/false
返回 Boolean

返回目录>>

是否为车宝环境

1.0.0引入

例子
etccb.ua.isChebao();// => true/false
返回 Boolean

返回目录>>

是否为IOS浏览器环境

1.0.0引入

例子
etccb.ua.isIos();// => true/false
返回 Boolean

返回目录>>

是否为iphoneX 浏览器环境

1.0.0引入

例子
etccb.ua.isIphoneX()// => true/false
返回 Boolean

返回目录>>

是否为微信浏览器环境

1.0.0引入

例子
etccb.ua.isWeixin()// => true/false
返回 Boolean

返回目录>>