您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Asks user if they want to open a link in a new tab or current tab
// ==UserScript== // @name pythonanywhere link open in a new tab // @namespace http://tampermonkey.net/ // @version 1.5 // @description Asks user if they want to open a link in a new tab or current tab // @author acronot // @license MIT // @match https://www.pythonanywhere.com/* // @grant none // ==/UserScript== (function() { 'use strict'; // CSS styles for the hover popup const style = ` .hover-popup { position: absolute; background-color: #f9f9f9; border: 1px solid #ccc; padding: 10px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); z-index: 1000; display: none; font-family: Arial, sans-serif; font-size: 14px; border-radius: 6px; } .hover-popup button { background-color: #007bff; color: white; border: none; padding: 5px 10px; margin: 0 5px; cursor: pointer; border-radius: 4px; } .hover-popup button:hover { background-color: #0056b3; } `; // Add styles to the document const styleElement = document.createElement('style'); styleElement.innerHTML = style; document.head.appendChild(styleElement); // Create a hover popup element const popup = document.createElement('div'); popup.className = 'hover-popup'; popup.innerHTML = ` <p>Open link in:</p> <button id="open-same-tab">Current Tab</button> <button id="open-new-tab">New Tab</button> `; document.body.appendChild(popup); let currentLink = null; // Function to handle mouseover on links function handleLinkHover(event) { currentLink = event.target.href; // Position the popup near the cursor popup.style.left = event.pageX + 'px'; popup.style.top = event.pageY + 'px'; popup.style.display = 'block'; } // Function to handle mouseout from links function handleLinkOut(event) { // If the mouse moves out of the link but not onto the popup, hide the popup const relatedTarget = event.relatedTarget; if (!popup.contains(relatedTarget)) { popup.style.display = 'none'; } } // Function to keep the popup visible when hovering over it function handlePopupHover() { popup.style.display = 'block'; } // Function to hide the popup when moving out of it function handlePopupOut(event) { // Hide the popup only when the mouse leaves the popup and isn't over a link const relatedTarget = event.relatedTarget; if (!relatedTarget || !relatedTarget.tagName || relatedTarget.tagName.toLowerCase() !== 'a') { popup.style.display = 'none'; } } // Attach event listeners to all links document.querySelectorAll('a').forEach(link => { link.addEventListener('mouseover', handleLinkHover); link.addEventListener('mouseout', handleLinkOut); }); // Keep the popup visible when hovered popup.addEventListener('mouseover', handlePopupHover); popup.addEventListener('mouseout', handlePopupOut); // Handle button clicks in the popup popup.addEventListener('click', (event) => { if (event.target.id === 'open-same-tab') { window.location.href = currentLink; // Open in current tab } else if (event.target.id === 'open-new-tab') { window.open(currentLink, '_blank'); // Open in new tab } popup.style.display = 'none'; // Hide popup after selection }); })();