您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
拦截 uView Plus 文档广告验证请求,模拟 VIP 响应,移除二维码弹窗及 Google 广告组件(AdSense、双击广告等)。
当前为
- // ==UserScript==
- // @name uView Plus Ad Bypass (VIP Simulation + Google Ads Blocker)
- // @namespace https://uiadmin.net/
- // @version 1.0.3
- // @description Bypass uView Plus documentation ad verification, block QR prompts, and remove Google ads (AdSense, DoubleClick, FundingChoices).
- // @description:zh-CN 拦截 uView Plus 文档广告验证请求,模拟 VIP 响应,移除二维码弹窗及 Google 广告组件(AdSense、双击广告等)。
- // @author WanliZhong
- // @license MIT
- // @homepage https://uview-plus.lingyun.net/
- // @supportURL https://uview-plus.lingyun.net/cooperation/about.html
- // @match https://uiadmin.net/*
- // @match https://*.uiadmin.net/*
- // @match https://uview-plus.jiangruyi.com/*
- // @match https://uview-plus.lingyun.net/*
- // @icon https://uview-plus.lingyun.net/favicon.ico
- // @run-at document-start
- // @grant none
- // ==/UserScript==
- (function () {
- 'use strict';
- const realXHR = window.XMLHttpRequest;
- class MockXHR {
- constructor() {
- this._xhr = null;
- this._url = '';
- this._listeners = {};
- }
- open(method, url) {
- this._url = url;
- this._intercept = url.includes('/api/v1/wxapp/ad/add');
- this._method = method;
- }
- send(body) {
- if (this._intercept) {
- const id = (() => {
- try {
- return JSON.parse(body).id || 'fake-id';
- } catch {
- return 'fake-id';
- }
- })();
- const fakeRes = JSON.stringify({ code: 200, data: { isVip: true, id }, msg: '成功', env: 'prod' });
- Object.assign(this, {
- readyState: 4,
- status: 200,
- responseText: fakeRes,
- response: fakeRes,
- responseURL: this._url
- });
- setTimeout(() => {
- this.onload?.({ target: this });
- this.onreadystatechange?.({ target: this });
- (this._listeners.load || []).forEach(cb => cb({ target: this }));
- (this._listeners.readystatechange || []).forEach(cb => cb({ target: this }));
- }, 10);
- } else {
- const xhr = this._xhr = new realXHR();
- xhr.onreadystatechange = (...args) => {
- this._syncFrom(xhr);
- this.onreadystatechange?.(...args);
- };
- xhr.onload = (...args) => {
- this._syncFrom(xhr);
- this.onload?.(...args);
- };
- xhr.open(this._method, this._url, true);
- xhr.send(body);
- }
- }
- _syncFrom(xhr) {
- ['readyState', 'status', 'responseText', 'response', 'responseURL'].forEach(k => this[k] = xhr[k]);
- }
- setRequestHeader() { }
- getAllResponseHeaders() { return ''; }
- getResponseHeader() { return null; }
- abort() { }
- addEventListener(type, cb) {
- (this._listeners[type] ||= []).push(cb);
- }
- }
- Object.defineProperty(window, 'XMLHttpRequest', {
- configurable: true,
- writable: true,
- value: MockXHR
- });
- // 广告清理函数
- function cleanAllAds() {
- try {
- // 移除广告脚本
- document.querySelectorAll('script[src*="googlesyndication"], script[src*="fundingchoicesmessages"]').forEach(e => e.remove());
- // 移除广告 iframe
- document.querySelectorAll('iframe[src*="googlesyndication"], iframe[src*="doubleclick"]').forEach(e => e.remove());
- // 移除常见广告 DOM
- document.querySelectorAll('[class*="adsbygoogle"], [id*="adsbygoogle"], .fc-ab-root, .google-auto-placed, .ad-container')
- .forEach(e => e.remove());
- } catch (err) {
- console.warn('[AdBypass] ❌ Error cleaning ads:', err);
- }
- }
- // 页面加载后立即清除广告,并延迟几轮再次清除
- document.addEventListener('DOMContentLoaded', () => {
- cleanAllAds();
- setTimeout(cleanAllAds, 1000);
- setTimeout(cleanAllAds, 3000);
- setTimeout(cleanAllAds, 5000);
- });
- // 观察 DOM 动态插入内容
- function observeWhenBodyReady() {
- const interval = setInterval(() => {
- if (document.body) {
- const observer = new MutationObserver(() => cleanAllAds());
- observer.observe(document.body, { childList: true, subtree: true });
- clearInterval(interval);
- }
- }, 100);
- }
- observeWhenBodyReady();
- // 可选:屏蔽 alert 弹窗
- window.alert = function (message) {
- console.log("Blocked alert:", message);
- throw new Error("alert() was blocked to prevent interruption.");
- };
- })();