拦截页面上的任何ajax调用并检测触发它的元素

时间:2018-03-04 13:05:43

标签: javascript ajax

我正在关注StackOverlow关于跟踪AJAX调用没有jQuery的方法$.ajaxStart (以及来自$.ajax...组的其他类似方法)的其他问题。

唯一的问题是那些jQuery方法具有像event.target.activeElement这样的属性,它们指向触发AJAX调用的元素(例如,dropdown元素)。

我试图在不使用jQuery的情况下实现相同的效果。在这里的其他问题中多次提到拦截请求,但没有人提出如何提取触发元素的问题。例如,我正在使用这段代码:

(function() {
var origOpen = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function() {
    console.log('request started!');
    this.addEventListener('load', function() {
        console.log('request completed!');

    });
    origOpen.apply(this, arguments);
};
})();

如何确定哪个元素在代码中引起了AJAX调用?

1 个答案:

答案 0 :(得分:0)

通常,当您想使用JS获取“activeElement”时,您应该使用“document.activeElement”。

它包含当前关注的元素。

可以通过点击或代码处理来调用Ajax调用,因此如果需要,您需要手动处理触发它的内容。

对你有帮助吗?