不仅要等待页面加载,还要通过ajax调用更新它的内容

时间:2013-02-17 15:57:50

标签: jquery ajax get load

我正在使用jQuery和ajax来获取远程网页。如果您将此网页加载到浏览器中,它会正常加载,但在大约100毫秒后,会显示另一个表示计数器的元素。此计数器插入特定位置并具有特定类。这是这个地方的HTML:

<span class="unreadcount">1</span>

我正在尝试为chrome创建一个插件,它需要这个值。问题是该页面加载后该值不可用,但我必须等待页面到服务器的请求(对于未读数字)才能完成,然后再处理页面的HTML以获取我想要的值。

有什么方法可以用jQuery做到这一点?我使用以下代码来获取HTML页面:

$.ajax({
           async: false,
           cache: false,
           type: 'GET',
           dataType: 'html',
           url: 'https://somesite.com/index.php',
           success: function(data1) {
               var descNode = document.createElement("div");
               descNode.innerHTML = data1;
               var unreadcount = descNode.getElementsByClassName("unreadcount");
            /*process unreadcount etc*/
         },
         error: function () {
            // something went wrong with the request
            error_occurred();
            return;
         }
      });

不幸的是,每次,unreadcount.length为0,我注意到计数器没有随页面一起加载,但不久之后。

如何在处理页面之前等待计数器加载?

1 个答案:

答案 0 :(得分:1)

你不能。

您将网页作为字符串。因此,不会执行任何JavaScript。

您最好的选择是尝试复制获取未读邮件计数的请求。也就是说,如果你确定它是通过AJAX完成的。

虽然,可能使用<iframe>可能会有所帮助。而且,对您有利,您只需要一个仅适用于Chrome的<iframe>解决方案,而不是一个易于失败的跨浏览器<iframe>解决方案。

相关问题