观看 DOM 属性
Watch a DOM property
我正在尝试监控第三方网站上的 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);
我最近通过设置这样的间隔函数来做到这一点:
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);
我正在尝试监控第三方网站上的 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);
我最近通过设置这样的间隔函数来做到这一点:
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);