您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
AjaxListener, events: onOpen, onSend, onCallback
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greatest.deepsurf.us/scripts/12135/71713/AjaxListener.js
var ajaxListener = new Object(); if (typeof XMLHttpRequest === "undefined") { XMLHttpRequest = function () { try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch (e) { } try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch (e) { } try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { } throw new Error("This browser does not support XMLHttpRequest."); }; } ajaxListener.open = XMLHttpRequest.prototype.open; ajaxListener.send = XMLHttpRequest.prototype.send; ajaxListener.onOpen = function (method, url, async, user, password) { }; ajaxListener.onSend = function (data, arg) { }; ajaxListener.onCallback = function () { }; XMLHttpRequest.prototype.open = function(method, url, async, user, password) { ajaxListener.xhr = this; ajaxListener.method = method; ajaxListener.url = url; ajaxListener.async = async; ajaxListener.user = user; ajaxListener.password = password; if (method.toLowerCase() == "get") { ajaxListener.data = user.split("?"); ajaxListener.data = ajaxListener.data[1]; } if (typeof ajaxListener.onOpen == "function") { ajaxListener.onOpen(method, url, async, user, password); for (var i = 0; i < arguments.length; i++) { switch (i) { case 0: arguments[i] = ajaxListener.method; break; case 1: arguments[i] = ajaxListener.url; break; case 2: arguments[i] = ajaxListener.async; break; case 3: arguments[i] = ajaxListener.user; break; case 4: arguments[i] = ajaxListener.password; break; } } } ajaxListener.open.apply(this, arguments); }; XMLHttpRequest.prototype.send = function (data, arg) { if (ajaxListener.method.toLowerCase() == "post") ajaxListener.data = data; ajaxListener.arg = arg; if (typeof ajaxListener.onSend == "function") { ajaxListener.onSend(data, arg); for (var i = 0; i < arguments.length; i++) { switch (i) { case 0: arguments[i] = ajaxListener.data; break; case 1: arguments[i] = ajaxListener.arg; break; } } } ajaxListener.onreadystatechange = this.onreadystatechange; this.onreadystatechange = function () { ajaxListener.onreadystatechange.apply(this); if (this.readyState == 4 && typeof ajaxListener.onCallback == "function") ajaxListener.onCallback(); }; ajaxListener.send.apply(this, arguments); };