您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
just open direct!
// ==UserScript== // @name open_original_links_in_pocket // @namespace undegro // @include https://getpocket.com/* // @version 4.6 // @license MIT // @description just open direct! // ==/UserScript== { const parent = document.getElementById("__next") const observeParent = new MutationObserver(records => records.filter(record => record.addedNodes[0]).some(record => record.target.tagName == "MAIN" || (record.target == parent && record.addedNodes[0].querySelector("main"))) && init()) const observeArticle = new MutationObserver(records => records.flatMap(record => [...record.addedNodes]).forEach(rewrite)) observeParent.observe(parent, { childList: true, subtree: true }) async function init() { observeArticle.disconnect() const articleList = await waitElement("main > div > div > div") if(articleList) observeArticle.observe(articleList, { childList: true, subtree: true }) } function rewrite(target) { if(target.tagName == "ARTICLE") { const links = [...target.getElementsByTagName("a")] const publisherLink = links.find(link => link.classList.contains("publisher")) links.forEach(link => { link.addEventListener("click", e => e.stopPropagation()) link.href = decodeURIComponent(publisherLink.href.replace(/^https:\/\/getpocket\.com\/redirect\?url=/, "")) link.setAttribute("target", "_blank") }) } } function waitElement(selector) { return new Promise((resolve) => { const searchElement = () => { const elem = document.querySelector(selector) if(!elem) { requestAnimationFrame(searchElement) }else{ resolve(elem) } } searchElement() setTimeout(() => resolve(false), 5000) }) } }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址