Я работаю над плагином браузера для Firefox, Safari, Chrome, который будет перехватывать данные на странице, запускать их с регулярным выражением, а затем, если оно совпадает, переформатировать его. Я работаю над загрузкой страницы, используя:
var meth = {
replaceInElement : function(element, find, replace) {
// iterate over child nodes and replace
},
run : function(evt){
// doc is the document that triggered "run" event
if (!(evt.target.nodeName === "#document")) { return; }
var doc = evt.target; // document that triggered "onload" event
if (!(doc instanceof HTMLDocument)) { return; }
if (!doc.location) { return; }
// perform substitutions on the loaded document
var find = /regex/gi
meth.replaceInElement(doc.body, find, function(match) {
var new_content;
//do stuff
return new_content;
});
//content.document.addEventListener('DOMNodeInserted', ezcall.node_inserted, false);
}
}
window.addEventListener("load", meth.run, false);
Это работает для статических страниц, но для чего-либо, использующего вызовы ajax, это не удается. Я не могу найти подходящего слушателя или понять, как перехватить XMLHttpRequest.
Я безуспешно пробовал аналогичные прослушиватели событий для XMLHttpRequest.
XMLHttpRequest.addEventListener('load', meth.run, false);
Я хотел бы либо перехватить запрос, либо изменить содержимое. Или найдите цель, которая была обновлена, и просканируйте ее после завершения вызова ajax.
ОБНОВЛЕНИЕ:
Я приму ответ, в котором говорится, что это невозможно, но мне понадобятся некоторые подтверждающие данные о том, почему это невозможно готово.