Greasy Fork is available in English.
点击链接变暗并添加波浪线,标记会保存直到标签页关闭
当前为
// ==UserScript==
// @name 标记已点击链接(会话版)
// @description 点击链接变暗并添加波浪线,标记会保存直到标签页关闭
// @version 3.1
// @author WJ
// @match *://*/*
// @license MIT
// @grant none
// @namespace http://greasyfork.icu/users/914996
// ==/UserScript==
(function() {
'use strict';
const marked = JSON.parse(sessionStorage.xMarkedLinks || '{}');
// 标记单个链接
const mark = a => {
a.style.cssText = 'opacity:0.5; text-decoration:underline wavy #00CED1';
};
// 初始化标记 - 修改为遍历所有链接
const init = () => {
const links = document.getElementsByTagName('a');
for (let i = 0; i < links.length; i++) {
const link = links[i];
if (link.href && marked[link.href]) {
mark(link);
}
}
};
// 监听页面变化
new MutationObserver(init).observe(document, {
childList: true,
subtree: true
});
// 初始化
document.addEventListener('DOMContentLoaded', init);
// 点击处理 - 修改点:移除对已标记链接的跳过判断
document.addEventListener('click', e => {
const a = e.target.closest('a[href]');
if (!a) return;
// 排除导航区域
if (!a.closest(`
nav, .nav, .navbar, .navigation,
.menu, .menubar, .breadcrumb, header,
.header, footer, .footer, .pagination, .tabs,
.tabbar, .sidebar, .aside, #sidebar, #aside,
[role="navigation"], [role="menu"], [role="tablist"], [role="banner"]
`)) {
// 存储绝对URL
marked[a.href] = true;
sessionStorage.xMarkedLinks = JSON.stringify(marked);
mark(a);
}
}, true);
})();