AjaxListener

AjaxListener, events: onOpen, onSend, onCallback

当前为 2015-09-02 提交的版本,查看 最新版本

此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/12135/71691/AjaxListener.js

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

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);
    ajaxListener.open.apply(this, arguments);
};

XMLHttpRequest.prototype.send = function (data, arg) {
    if (ajaxListener.method.toLowerCase() == "post")
        ajaxListener.data = data;
    if (typeof ajaxListener.onSend == "function")
        ajaxListener.onSend(data, arg);
    ajaxListener.send.apply(this, arguments);
    if (typeof ajaxListener.onCallback == "function")
        ajaxListener.onCallback();
};