我正在使用内容脚本构建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);
}
}
});
}
这可能吗?
答案 0 :(得分:5)
如果您正在编写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。