Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Facebook上检测ajax调用_Javascript_Jquery_Ajax_Google Chrome Extension - Fatal编程技术网

Javascript 如何在Facebook上检测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

我想开发一个chrome扩展来替换facebook上的一些文本,但是一旦用户滚动ajax出现,那么新加载的ajax文本就不会得到更改。我试着用()绑定,但失败了。所以我每次都在想,如果有ajax,我会再次触发我的事件

但我找不到任何方法来检测使用jquery的页面中发生的ajax:(

我试过了

$('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调用。