我有一个简单的Greasemonkey脚本,用于进行一些简单的DOM操作。这个Greasemonkey脚本在DOM加载后加载,对于初始页面来说很好,也能正常工作。但是在这个网站(Twitter),页面的某些部分会在通过XMLHttpRequest点击后加载,而我的Greasemonkey脚本没有对这部分进行操作。
是否有一种简单的方法,在XMLHttpRequest加载或请求更改DOM之后再次运行脚本?
是否有一种简单的方法,在XMLHttpRequest加载或请求更改DOM之后再次运行脚本?
processAjaxResponse
的函数,该函数在处理XmlHttpRequest
响应时被调用,则您可以在Greasemonkey脚本中执行以下操作:var originalProcessAjaxResponse;
function myNewProcessAjaxResponse() {
/* Manipulate DOM if you need to, and then... */
originalProcessAjaxResponse();
}
function hijack() {
var originalProcessAjaxResponse = processAjaxResponse;
processAjaxResponse = myNewProcessAjaxResponse();
}
这允许您在 AJAX 响应事件发生时注入自己的功能。
if (typeof unsafeWindow.onPageChange === 'function') {
var _onPageChange = unsafeWindow.onPageChange;
unsafeWindow.onPageChange = function(){
_onPageChange();
filter();
};
} else {
unsafeWindow.onPageChange = filter;
}