// ==UserScript== // @name Open link in new tab in GitHub // @name:zh-CN 在新标签页中打开链接[Github] // @namespace http://tampermonkey.net/ // @version 0.1 // @license MIT // @description Ensures all tags on GitHub Pages open in a new tab // @description:zh-CN 确保 GitHub Pages 上的所有 标签在新标签页中打开 // @author wxupjack // @match *://*.githubpages.com/* // @match *://*.github.com/* // @grant none // @downloadURL https://update.greasyfork.icu/scripts/542322/Open%20link%20in%20new%20tab%20in%20GitHub.user.js // @updateURL https://update.greasyfork.icu/scripts/542322/Open%20link%20in%20new%20tab%20in%20GitHub.meta.js // ==/UserScript== (function() { 'use strict'; function updateLinks() { // Select all tags const links = document.querySelectorAll('a'); //console.log('all modified tags:', links); links.forEach(link => { link.setAttribute('target', '_blank'); }); } // Run after the page is loaded if (document.readyState === 'complete' || document.readyState === 'interactive') { updateLinks(); } else { window.addEventListener('DOMContentLoaded', updateLinks); } // Optional: Also update links if DOM is dynamically changed (for SPAs or AJAX navigation) const observer = new MutationObserver(updateLinks); observer.observe(document.body, { childList: true, subtree: true }); })(); // LLM prompt // Create a Tampermonkey script for me: // Domain: All GitHub Pages // Goal: Add `target="_blank"` to all `` tags on the page // 1. Get the source code after the page loads // 2. Find all tags // 3. Add/modify the target to _blank