您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
用于移除网站限制的通杀解决方案
当前为
- // ==UserScript==
- // @name Remove Limits - ALL KILL
- // @name:zh-CN 移除限制 - 通杀
- // @namespace http://tampermonkey.net/
- // @version 0.2.0
- // @description ALL-KILL solution for removing limits on the website
- // @description:zh-CN 用于移除网站限制的通杀解决方案
- // @match none
- // @author PRO
- // @run-at document-start
- // @license gpl-3.0
- // ==/UserScript==
- (function () {
- "use strict";
- const debug = false;
- const log = debug ? console.log.bind(console, "[Remove Limits]") : () => { };
- // === JavaScript Part ===
- // Stop listeners that might hinder right-click menu, selection, etc.
- const events = ["contextmenu", "select", "selectstart", "copy", "cut", "dragstart"];
- events.forEach((event) => {
- document.addEventListener(event, (e) => {
- e.stopImmediatePropagation();
- }, { capture: true });
- });
- // === CSS Part ===
- const userSelectAliases = ["-webkit-touch-callout", "-webkit-user-select", "-moz-user-select", "-ms-user-select", "user-select"];
- // Remove CSS rules that might hinder user selection
- function removeUserSelect(styleSheet) {
- for (const rule of styleSheet.cssRules) { // Might encounter a SecurityError
- if (!rule instanceof CSSStyleRule || !rule.style) continue; // Not what we're looking for
- // Iterate over its styles
- for (const property of rule.style) {
- if (userSelectAliases.includes(property) && rule.style.getPropertyValue(property) === "none") {
- rule.style.removeProperty(property); // Remove the property
- log(`Removed "${property}" from rule:`, rule);
- }
- }
- }
- }
- document.addEventListener("DOMContentLoaded", () => {
- // Remove all `user-select: none` declarations
- for (const styleSheet of document.styleSheets) {
- try {
- removeUserSelect(styleSheet);
- } catch (e) {
- if (e instanceof DOMException && e.name === "SecurityError") {
- log("Caught a SecurityError while trying to read a CSS rule. This is expected if the CSS rule is from a different origin.");
- } else {
- log("An unexpected error occurred while trying to read a CSS rule:", e);
- }
- }
- }
- });
- // Allow selection using CSS (not needed anymore in most cases)
- const style = document.createElement("style");
- style.textContent = `* {
- ${userSelectAliases.map((alias) => `${alias}: unset !important;`).join("\n")}
- }`;
- document.head.appendChild(style);
- })();