用户空闲检测器 - Idle Detection API演示
请求Idle Detection权限,监测用户是否离开或处于空闲状态,实时更新状态。
UD5工具箱
Contacts Picker API — 安全地从用户设备获取联系人信息
尚未选择联系人
点击上方按钮开始体验 Contacts API
navigator.contacts.getProperties() 动态检测。地址属性返回的是 ContactAddress 对象,包含街道、城市、邮编等结构化字段。
allow="contacts" 属性navigator.contacts.select() 的 Promise 仍会正常 resolve,但返回一个空数组 []。这不是错误,而是用户主动拒绝分享的正常行为。开发者应妥善处理空数组的情况,避免将取消选择误判为错误。
const props = ['name', 'email', 'tel'];
const opts = { multiple: true };
try {
const contacts = await navigator
.contacts.select(props, opts);
if (contacts.length === 0) {
console.log('用户取消了选择');
} else {
contacts.forEach(c => {
console.log(c.name?.[0]);
console.log(c.email?.[0]);
console.log(c.tel?.[0]);
});
}
} catch (err) {
console.error('API错误:', err);
}
使用 getProperties() 检测可用属性,动态适配不同设备。
请求Idle Detection权限,监测用户是否离开或处于空闲状态,实时更新状态。
模拟接收包含一次性密码的短信,展示 navigator.credentials.get({otp}) 如何自动提取 OTP 并填入表单。
从内置库随机选取主流浏览器的User-Agent字符串,一键复制用于请求头。
输入字符串并使用 URL.canParse() 判断是否为有效 URL,不抛出异常。
模板化记录团队成员昨日完成、今日计划与阻塞项,支持导出Markdown便于分享。
输入Base32密钥手动生成6位动态验证码,兼容Google Authenticator,前端算法实现不联网。
演示如何用Intersection Observer实现滚动到底部自动加载内容的经典模式。
提供每段应该写什么的提示,辅助填写个性化的求职信内容。
团队成员在会前用温度计匿名标情绪,汇总显示利于主持人引导。
嵌套的彩色方块,点击内层观察事件传播顺序,直观理解addEventListener的第三个参数。
构建带有自定义头和方法复杂跨域请求,检查预检与响应。
使用多个哈希函数和位数组,演示布隆过滤器的添加和查询,计算误判率。
为输入框生成常见格式掩码(如电话、日期、信用卡),输出JS实现代码,规范用户输入。
输入 IBAN 校验其有效性,或选择国家和银行代码生成符合格式的 IBAN 用于测试。
定义脱敏规则(如手机号中间4位星号,邮箱部分隐藏),对 JSON 或 CSV 数据执行批量掩码。
输入MAC地址,提取OUI前缀并匹配内置IEEE注册表,识别设备网卡制造商。
选择表A和表B的样本数据,查看INNER/LEFT/RIGHT/FULL JOIN的韦恩图与实际输出结果。
生成临时密钥对,演示非对称加解密短消息的过程。
输入WiFi的SSID、密码和加密方式,生成客人一扫即可联网的二维码。
选择肤质与目标,生成早间晚间护肤步骤,并记录完成情况。
快速生成PWA所需的manifest.json文件,填写应用名、图标、主题色、启动网址等字段。
自定义录入附近的水电工、开锁、物业等常用师傅电话,分类快速查找。
分解查询参数,高亮可能存在的SQL注入或XSS模式,辅助安全审查。
填写项目名称、描述、安装步骤等,实时预览并生成完整的 Markdown 格式 README。
浏览器端实现DES对称加密算法,支持ECB/CBC模式及自定义密钥,安全处理敏感数据,无需上传服务器。
逐步演示OAuth2授权码、隐式及密码模式交互流程,帮助理解重定向、Token交换与刷新机制。
输入正则表达式,检测潜在的指数级回溯陷阱,避免服务器性能被恶意输入拖垮。
填写姓名、电话、邮箱等信息,生成符合VCard标准的二维码。
演示元素进入视口时触发懒加载和曝光埋点,并展示当前可见比例。
以节点图展示链表的插入、删除、反转等操作,直观理解指针变化。