transitionend 触发多次

当监听 transitionend 事件时,transitionend 会在每个属性 transitioned 时触发,可以通过 event.originalEvent.propertyName 筛选,例如

dom.addEventListener('transitionend', function (e) { if (e.originalEvent.propertyName == 'height'){ ... } })

自定义 console.log

const log = console.log console.log = function () { ... log.apply(this, arguments) }

过滤 window 属性

Object.keys(window).filter(n => !/^on/.test(n) && !/^webkit/.test(n) && !(n in document.createElement('div')))

dom.normalize

节点规范化时,调用 dom.normalize(),对当前节点及所有子树节点,执行移除空文本节点、合并相邻文本节点操作。

检查注册监听器是否支持 possive

let supportsPassive = false const opts = Object.defineProperty({}, 'passive', { get: function () { supportsPassive = true } }) document.addEventListener('test', null, opts) document.removeEventListener('test', null, opts)

chrome 分享

navigator.share(...)


更新于[2025-07-07]