360浏览器录屏拦截

533 阅读1分钟

360浏览器器录屏功能,很烦人,在调试的时候我发现开启录播功能时,video标签的默认control属性被修改了,如下图:

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