360浏览器器录屏功能,很烦人,在调试的时候我发现开启录播功能时,video标签的默认control属性被修改了,如下图:
下图为正常的video 标签
下图为开启录屏后的video标签
对比发现video 标签被添加了id 属性
在学习浏览器宏任务和微任务时,了解了一个 js api MutationObserver,这个api可以监听dom 变化;如果在video dom属性变化时销毁播放器,就可以避免被录屏,具体实现如下:
var dom = document.querySelector('video')
var observer = new MutationObserver((mutationList) => {
for (var mutation of mutationList) {
if (mutation.target.getAttribuate('id')) {
observer.disconnect() // 停止监听video
// 销毁播放器
// some codes
dom.remove()
}
}
})
// 配置可以根据自己的需求自行设置
observer.observe(dom, {attributes: true, childList: true, subtree: true})