您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
just open direct!
当前为
// ==UserScript== // @name open_original_links_in_pocket // @namespace undegro // @include https://getpocket.com/* // @version 4.3 // @license MIT // @description just open direct! // ==/UserScript== { const observeParent = new MutationObserver(records => records.some(record => [...record.removedNodes].includes(articleListElem)) && init()) let articleListElem let mo init() function init() { mo?.disconnect() observeParent.disconnect() waitElement("main > div > div > div").then(elem => { const mo = new MutationObserver(records => records.flatMap(record => [...record.addedNodes]).forEach(rewrite)) articleListElem = elem.closest("main > div") observeParent.observe(elem.closest("main"), { childList: true }) mo.observe(elem, { childList: true, subtree: true }) }) } function rewrite(target) { if(target.tagName == "ARTICLE") { target.querySelector("button[aria-label='Open Menu']").click() }else if(target.parentElement?.classList.contains("item-menu")){ target.style.opacity = "0" target.style.pointerEvents = "none" const parentArticle = target.closest("article") parentArticle.querySelector("button[aria-label='Open Menu']").addEventListener("click", () => target.removeAttribute("style"), { once: true }) parentArticle.getElementsByTagName("a")[0].href = decodeURIComponent(target.getElementsByTagName("a")[0].href.replace(/^https:\/\/getpocket\.com\/redirect\?url=/, "")) } } function waitElement(selector) { return new Promise((resolve, reject) => { const searchElement = () => { const elem = document.querySelector(selector) if(!elem) { requestAnimationFrame(searchElement) }else{ resolve(elem) } } searchElement() setTimeout(() => reject("timeout"), 5000) }) } }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址