AjaxListener, events: onOpen, onSend, onCallback
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/12135/71690/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) {
if (typeof ajaxListener.onOpen == "function")
ajaxListener.onOpen(method, url, async, user, password);
ajaxListener.xhr = this;
ajaxListener.method = method;
ajaxListener.url = url;
ajaxListener.async = async;
ajaxListener.user = user;
ajaxListener.password = password;
ajaxListener.open.apply(this, arguments);
if (method.toLowerCase() == "get") {
ajaxListener.data = user.split("?");
ajaxListener.data = ajaxListener.data[1];
}
};
XMLHttpRequest.prototype.send = function (data, arg) {
if (typeof ajaxListener.onSend == "function")
ajaxListener.onSend(data, arg);
ajaxListener.send.apply(this, arguments);
if (ajaxListener.method.toLowerCase() == "post")
ajaxListener.data = data;
if (typeof ajaxListener.onCallback == "function")
ajaxListener.onCallback();
};