我正在努力学习编写在greasemonkey上运行的用户脚本。
我有一个小型个人网站(没有人访问过),所以我用它作为我的实验工具。我想每次从页面发出GET
请求时执行一个函数。我的页面有一些ajax请求,一些用户启动和一些定时。最初我为DOM节点插入添加了一个事件处理程序,但我意识到有些请求不会对DOM元素进行任何更改。
那么,是否可以为Web请求添加挂钩?
如果没有,我该如何处理这个问题?我试图在页面上显示一些很酷的统计数据,基本上记录每个请求的计数器和成功/失败率......所有这些都是通过所述用户脚本。
ps:这完全没有意义,但是我在节日期间从无聊开始,现在我无法离开它!答案 0 :(得分:2)
也许尝试重写XMLHttpRequest打开原型:
var XMLHttpRequestOpen = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function () {
console.log("XMLHttpRequest open called!");
/* PUT WHAT YOU NEED HERE */
XMLHttpRequestOpen.apply(this, arguments);
}
XMLHttpRequest是浏览器中AJAX工作的机制。在发出请求时始终会调用open方法。通过“覆盖”此方法,如上所述,您可以在每次发送请求时执行一些代码。