如何解决是否可以通过 Tampermonkey 中的用户脚本将特定元素组的 DOM 事件从 Click 更改为 Mouseenter?
先决条件:PC、基于 Chrome 的浏览器、在 YouTube 上、登录到 YouTube。
YouTube 主页上有视频,推荐给用户。如果用户对某些视频不感兴趣,他必须:
- 将光标悬停在视频区域 - Three dots button 将出现
- 点击三点按钮 - Menu 将出现
- 点击“不感兴趣”按钮 - 视频将从 Feed 中删除
我想使用 Tampermonkey 中的用户脚本将这些步骤更改为:
- 将光标悬停在视频区域 - Menu 将出现
- 点击“不感兴趣”按钮 - 视频将从 Feed 中删除
我的问题是:
- 是否可以通过 Tampermonkey 中的用户脚本将特定元素组的 DOM 事件从 Click 更改为 Mouseenter?
- 在哪里可以找到如何操作的信息/示例?
解决方法
这不是最好的解决方案,它只影响在页面开头加载的视频。
(async () => {
let i = 1;
while (i != 0) {
await sleep(1);
i++;
if (i > 100) {
const elements = document.querySelectorAll('yt-icon-button#button.dropdown-trigger.style-scope.ytd-menu-renderer');
elements.forEach(el => el.addEventListener('mouseover',event => event.target.click()));
i = 0;
}
}
})();
function sleep(ms) {
return new Promise(function (resolve,reject) {
setTimeout(() => {
resolve();
},ms);
})
}
主要部分在哪里:
// Selecting all elemets on page to add new eventlistener
const elements = document.querySelectorAll('yt-icon-button#button.dropdown-trigger.style-scope.ytd-menu-renderer');
// Adding new evenlistener which on Mouseover performs Click
elements.forEach(el => el.addEventListener('mouseover',event => event.target.click()));
感谢double-beep的想法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。