- 防抖
- 节流
- 模拟 new 运算符
- 模拟 instanceof
- 模拟 Function.prototype.apply()
- 模拟 Function.prototype.call()
- 模拟 Function.prototype.bind()
- 模拟 Array.prototype.forEach()
- 模拟 Array.prototype.map()
- 模拟 Array.prototype.filter()
- 函数柯里化
- 类数组转数组
- 实现深拷贝
- 继承的实现
- 实现 AJAX
- 多维数组扁平化
- setTimeout 模拟 setInterval
- setInterval 模拟 setTimeout
- sleep
- 数组去重的多种实现方式
- 解析 URL 参数
- 斐波那契数列
- 发布订阅
- 带图带事件的 桌面通知
- 原生 30 行代码实现视频截图
- 基于 URLSearchParams 或 URL 获取 queryString 的值
- 基于 atob 和 btoa 的 base64 编码和解码
- 非正则替换 的 html 代码 encode 和 decode
- 相对地址转换为绝对地址
- 基于 URL 或者 Crypto.getRandomValues 生成 UUID
- 基于 Array.from 的序列生成器
- 基于 sendBeacon 的安全的数据上报
- 数字千分位
- 生成随机字符串 ID
- Promise 顺序执行
- 延时执行 delay
- 进度值映射
- 滑滚动页面到顶部
- 禁止选择和复制
- 禁止图片拖拽
- 浏览器操作相关 browser 工具函数
- 获取 url 参数(第一种)
- 获取 url 参数(第二种)
- 修改 url 中的参数
- 删除 url 中指定的参数
- 获取窗口可视范围的高度
- 获取窗口可视范围宽度
- 获取窗口宽度
- 获取窗口尺寸
- 获取滚动条距顶部高度
- 获取滚动条距左边的高度
- 开启全屏
- 关闭全屏
- 返回当前滚动条位置
- 滚动到指定元素区域
- 平滑滚动到页面顶部
- http 跳转 https
- 检查页面底部是否可见
- 打开一个窗口
- 自适应页面(rem)
- 日期工具 date 工具函数
- cookie 存贮
- cookie 获取
- cookie 删除
- 更多的工具函数
- 数字千分位
- 截取字符串并加身略号
- 获取文件 base64 编码
- B 转换到 KB,MB,GB 并保留两位小数
- base64 转 file
- base64 转 blob
- blob 转 file
- file 转 base64
- 递归生成树形结构
- 遍历树节点
- 追溯父节点
- 寻找所有子节点
- 根据 pid 生成树形结构
- 查询数组中是否存在某个元素并返回元素第一次出现的下标
- Windows 根据详细版本号判断当前系统名称
- 判断手机是 Andoird 还是 IOS
- 函数防抖
- 函数节流
- 判断数据类型
- 生成指定范围随机数
- 数组乱序
- 数组交集
- 数组中某元素出现的次数
- 加法函数(精度丢失问题)
- 减法函数(精度丢失问题)
- 除法函数(精度丢失问题)
- 乘法函数(精度丢失问题)
- 递归优化(尾递归)
- 生成随机整数
- 去除空格
- 大小写转换
- 随机 16 进制颜色 hexColor
- 转义 html(防 XSS 攻击)
- 检测移动/PC 设备
- 隐藏所有指定标签
- 返回指定元素的生效样式
- 检查是否包含子元素
- 数字超过规定大小加上加号 +,如数字超过 99 显示 99+
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
带图带事件的 桌面通知
网页也可以以桌面弹框的形式进行通知,先看个效果图: 有头像,有标题,有文本, 点击消息通知还能让窗体聚焦 ,真帅。
代码
function doNotify(title, options = {}, events = {}) {
const notification = new Notification(title, options);
for (let event in events) {
notification[event] = events[event];
}
}
function notify(title, options = {}, events = {}) {
if (!("Notification" in window)) {
return console.error("This browser does not support desktop notification");
}
else if (Notification.permission === "granted") {
doNotify(title, options, events);
} else if (Notification.permission !== "denied") {
Notification.requestPermission().then(function (permission) {
if (permission === "granted") {
doNotify(title, options, events);
}
});
}
}
复制代码
示例 tag 还可以用去重消息。
notify("中奖提示", {
icon: "https://sf1-ttcdn-tos.pstatp.com/img/user-avatar/f1a9f122e925aeef5e4534ff7f706729~300x300.image",
body: "恭喜你,掘金签到一等奖",
tag: "prize"
}, {
onclick(ev) {
console.log(ev);
ev.target.close();
window.focus();
}
})
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论