Javascript 如何在Facebook上检测ajax调用
我想开发一个chrome扩展来替换facebook上的一些文本,但是一旦用户滚动ajax出现,那么新加载的ajax文本就不会得到更改。我试着用()绑定,但失败了。所以我每次都在想,如果有ajax,我会再次触发我的事件 但我找不到任何方法来检测使用jquery的页面中发生的ajax:( 我试过了Javascript 如何在Facebook上检测ajax调用,javascript,jquery,ajax,google-chrome-extension,Javascript,Jquery,Ajax,Google Chrome Extension,我想开发一个chrome扩展来替换facebook上的一些文本,但是一旦用户滚动ajax出现,那么新加载的ajax文本就不会得到更改。我试着用()绑定,但失败了。所以我每次都在想,如果有ajax,我会再次触发我的事件 但我找不到任何方法来检测使用jquery的页面中发生的ajax:( 我试过了 $('body').on(function(){ if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERV
$('body').on(function(){
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
/* special ajax here */
alert('test');
}
});
不工作要回答您的问题,您可以使用以下jQuery事件处理程序检测任何AJAX调用,该处理程序只在
文档
元素上工作
$(document).ajaxStart(function() {
alert('I'm making an AJAX call!!!');
});
您还可以查看开发人员工具中的“网络”选项卡。要检测网页上的AJAX调用,您必须将代码直接插入该网页,然后调用
.ajaxStart
或.ajaxSuccess
例如:
// To Successfully Intercept AJAX calls, we had to embed the script directly in the Notifications page
var injectedCode = '(' + function() {
$('body').ajaxSuccess(function(evt, request, settings) {
if (evt.delegateTarget.baseURI == 'URL to check against if you want') {
// do your stuff
}
});
} + ')();';
// Inserting the script into the page
var script = document.createElement('script');
script.textContent = injectedCode;
(document.head || document.documentElement).appendChild(script);
script.parentNode.removeChild(script);
jQuery具有全局ajax处理程序,例如
$.ajaxStart
,但我怀疑facebook是否在使用jQuery进行ajax调用。@adeneo如果不是jQuery,那就是ajax,jQuery无法捕获ajax?我怀疑他们没有使用ajax。……哈?我不是说facebook没有使用ajax,只是他们没有使用jQuery,这意味着XMLHttpRequestst、 当然,还有套接字和服务器发送的事件。因此,现在您已经添加了代码,您正在使用on
而没有事件,PHP在Chrome扩展中到底做了什么?@adeneo即使我将其放在on()之外,它也检测不到任何内容,这就是为什么我使用on()进行调试的原因…我以前试过使用它,当我滚动提要时,它不会出现在facebook上..只有当jQuery是真正发出ajax请求的人时,它才会起作用,facebook不会使用jQuery只是回答问题,伙计们。如果你要使用jQuery检测ajax调用,那么jQuery将是执行ajax请求的人AJAX调用..你知道吗?否则,这个问题和它的标题就毫无意义了。@PatrickEvans那么我怎么才能抓住AJAX呢?我检查了网络选项卡,它在XHR下,这是否意味着纯AJAX?@user3522749是的,XHR是一个AJAX调用。