纯JavaScript中的ajaxComplete

我正在使用内容脚本构建chrome扩展。

我有一段代码,使用jQuery在页面上的所有ajax请求成功时注入DOM元素。 如何在没有jQuery的情况下重新创建它? 请注意,我无法修改页面上的任何ajax请求。

if(window.jQuery){ jQuery( document ).ajaxComplete(function( event, xhr, settings ) { for(var i =0; i< $jq('div.handwave').length; i++){ if($($('div.handwave')[i]).children('.done').length < 1){ $(document).find('div.handwave').eq(i).append(wind); } } }); } 

这可能吗?

更新

如果您正在编写Chrome扩展程序,则应该使用chrome.webRequest API。 请参阅https://developer.chrome.com/extensions/webRequest


您可以覆盖生成AJAX请求所需的现有方法之一,例如XMLHttpRequest.prototype.send以添加您自己的加载事件侦听器。 例如

 (function() { const send = XMLHttpRequest.prototype.send XMLHttpRequest.prototype.send = function() { this.addEventListener('load', function() { console.log('global handler', this.responseText) // add your global handler here }) return send.apply(this, arguments) } })() 

正如评论中所提到的,这不会涵盖fetch API。