2

我正在尝试监视第三方网站上的 DOM 元素。在倒数计时器到达之前,该元素是不存在的,然后它被创建。

我已经取得了一些成功: document.getElementsByClassName('countdown ng-hide').length

当它从 0 变为 1 时,我想实现一个功能。

我该怎么做?我尝试过使用 Mutation Observer,但它不会让我观察到空节点。

谢谢!

编辑:这是我到目前为止所得到的。

var timesDone = 0; 
var songID = 0; 
function clickit(xsongID) { 
if(document.getElementsByClassName('lottery-countdown ng-hide').length == 1) { 

document.getElementsByClassName('media submission ng-scope')[xsongID].click(); songName = document.getElementsByClassName('media-title submission-name ng-binding')[xsongID].outerHTML; timesDone++; } 

} 
setInterval(clickit, 29900, songID); 
4

1 回答 1

1

我最近通过设置这样的间隔函数来做到这一点:

var timesTest = 0;
var checkExists = setInterval(function() {
    if ($('.yourClassElement').length) {
       // ok element found : do your stuff and clear the Interval...
       // stuff...
       clearInterval(checkExists);
       timesTest = 0;
     }
     timesTest++;
     // I won't let this run more than 5 seconds, so :
     if (timesTest*100 > 5000)
        clearInterval(checkExists);
}, 100);
于 2015-04-10T21:07:45.213 回答