override missav js
As of
// ==UserScript==
// @name override-missav-js
// @namespace https://missav.com
// @version v0.0.4
// @description override missav js
// @author You
// @match https://missav.com
// @match https://missav.com/search/*
// @match https://missav.com/dm251/chinese-subtitle
// @icon https://www.google.com/s2/favicons?sz=64&domain=missav.com
// @grant none
// ==/UserScript==
const onMouseEnter = () => {
// 获取页面中所有拥有 .thumbnail 类的元素
const thumbnails = document.querySelectorAll(".thumbnail");
// 遍历所有的 .thumbnail 元素
thumbnails.forEach(function (thumbnail) {
// 在每个 .thumbnail 元素下找到符合条件的 a 元素
const link = thumbnail.querySelector("div:first-child > a:last-child");
if (link == null) {
return;
}
// 检查 link 是否已经有监听器或者已经被触发过点击
if (!link.hasAttribute("data-click-triggered")) {
// 创建一个监听函数,它可以被解除绑定
function hoverTriggerClick(event) {
// 触发点击事件
link.click();
// 在触发点击后解除 mouseenter 事件监听
link.removeEventListener("mouseenter", hoverTriggerClick);
}
// 标记 link 已添加事件监听器
link.setAttribute("data-click-triggered", "true");
// 为该 a 元素添加鼠标悬停的事件监听器
link.addEventListener("mouseenter", hoverTriggerClick);
}
});
};
const onVideo = () => {
// 获取页面中所有拥有 .thumbnail 类的元素
const thumbnails = document.querySelectorAll(
".thumbnail > div:first-child > a:first-child"
);
// 遍历所有的 .thumbnail 元素
thumbnails.forEach(function (thumbnail) {
// 在每个 .thumbnail 元素下找到符合条件的 a 元素
const video = thumbnail.querySelector(
"div:first-child > a:first-child > video"
);
if (video == null || video.getAttribute("play") === "true") {
return;
}
// const id = video.id.replace("preview-", "");
// console.log(id, video.dataset.src);
// video.src = video.dataset.src.replace("undefined", id);
// console.log(video.id, video.dataset.src);
if (video.dataset.src.indexOf("undefined") > -1) {
return;
}
video.setAttribute("play", "true");
video.src = video.dataset.src;
video.play();
video.className = "preview";
});
};
(function () {
"use strict";
setTimeout(() => {
onVideo();
}, 2000);
// onMouseEnter();
const observer = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
if (mutation.addedNodes.length > 0) {
// onMouseEnter();
onVideo();
}
});
});
observer.observe(document.body, {
attributes: false,
childList: true,
subtree: true,
});
})();