您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Decorate links on a Beehiiv newsletter page (currently targeting Today in Tabs) with title attributes showing the target URLs
// ==UserScript== // @name Beehiiv Link Transparency // @version 0.2 // @description Decorate links on a Beehiiv newsletter page (currently targeting Today in Tabs) with title attributes showing the target URLs // @author Kevin Shay // @namespace https://greasyfork.org/users/154233 // @match https://www.todayintabs.com/* // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // ==/UserScript== (function() { 'use strict'; const BEEHIIV_RE = new RegExp('^https://flight.beehiiv.net/v2/clicks/'); let pathSeen; function parseJwt(token) { const base64 = token.split('.')[1].replace(/-/g, '+').replace(/_/g, '/'); return JSON.parse( decodeURIComponent( atob(base64).split('').map( (c) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2) ).join('') ) ); } function extractTargetUrl(redirectUrl) { return parseJwt(redirectUrl.replace(BEEHIIV_RE, '')).url; } function checkLinks() { [...document.getElementsByTagName('a')].forEach((el) => { if (el.href.match(BEEHIIV_RE)) { el.setAttribute('title', extractTargetUrl(el.href)); } else { // Just populate the tooltip with the original URL for UX consistency el.setAttribute('title', el.href); } }); } setInterval(() => { if (location.pathname === pathSeen) { return; } pathSeen = location.pathname; setTimeout(checkLinks, 1000); }, 1000); })();