您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
在禁用 disable-devtool 和 devtools-detector 的同时,使网站完美运行。
- // ==UserScript==
- // @name No DisableDevTool
- // @name:zh-CN 放飞 disable-devtool
- // @name:ja disable-devtool をぶち壊せ
- // @namespace NoDisableDevTool
- // @version 1.1.2
- // @description Break disable-devtool and devtools-detector while keeping the website working perfectly.
- // @description:zh-CN 在禁用 disable-devtool 和 devtools-detector 的同时,使网站完美运行。
- // @description:ja disable-devtool と devtools-detector を壊すながら、ウェブサイトに影響を及ぼさず。
- // @author FurryR
- // @match *://*/*
- // @license MIT
- // @grant none
- // @run-at document-start
- // ==/UserScript==
- (function() {
- 'use strict';
- if (document instanceof XMLDocument) {
- return;
- }
- const slice = Array.prototype.slice;
- Array.prototype.slice = function (...args) {
- if (args.length === 0 && Array.prototype.every.call(this, v => v && typeof v === 'object' && typeof v.name === 'string' && typeof v.isOpen === 'function' && typeof v.isEnable === 'function')) {
- Array.prototype.slice = slice;
- return [];
- }
- return slice.call(this, args);
- };
- const assign = Object.assign;
- Object.assign = function (...args) {
- if (args.length === 2 && typeof args[0] === 'function' && typeof args[1] === 'object' && args[1] !== null && typeof args[1].isDevToolOpened === 'function' && typeof args[1].version === 'string' && typeof args[1].isRunning === 'boolean' && typeof args[1].isSuspend === 'boolean') {
- Object.assign = assign;
- const result = Object.assign(...args);
- console.log('Detected disable-devtool component', result);
- return Object.assign(function () {
- console.trace('disable-devtool called here');
- }, args[1]);
- }
- return assign.call(this, ...args);
- }
- })();