Chrome扩展等待ajax调用完成

时间:2016-01-19 11:35:03

标签: jquery ajax

我遇到了一些问题,试图阻止脚本搜索整个页面,直到我为触发onClick事件的页面完成ajax调用。

我试图通过扩展程序实现的目的是每两秒检查一次我的聊天室是否有新消息,如果有,请打开该聊天室以检索新消息并将其发送到我的服务器以进行自动排序处理。不幸的是,我有权使用网页或其脚本。此外,此页面的scrips被写为私有,因此我无法真正访问脚本中的函数。

所以,这就是我一直在想的事情:

  1. 每两秒检查一次新消息
  2. 如果有,则打开聊天室并加载WAIT til消息。
  3. 检索该聊天室的新未读消息,如果存在新消息,则继续使用新消息进入下一个消息。
  4. 这是我的代码摘录:

        $.each(chatRoomArr, function(index) {
    
        $("#"+unreadChatRooms[index]).trigger("click");
            setTimeout(function() {
                tmp = $("#chatLogs > div.line > p.hr_talk > span:last").parent().parent()
                    .nextAll("div.conv.usr").children("span.comment").children("span.txt_cont");
                console.log("tmp[index].innerText = " + tmp[index].innerText);
                tmpArr = [];
                $.each(tmp, function(idx) {
                    tmpArr.push(tmp[idx].innerText);
                });
                message[unreadChatRooms[index][1]] = tmpArr;
            }, 278);
        });
    

    这里的问题是我只是猜测加载和呈现消息需要花费277ms的时间,因为从js控制台我可以在277ms验证它无法从页面检索数据。而且我不能仅仅依靠我从测试和试用中获得的这个神奇数字,因为我非常确定这个值会因各种原因(我的互联网连接等)而有所不同

    所以,我想知道是否有办法真正标记触发点击事件完成时特定的ajax调用?

0 个答案:

没有答案