如何在浏览器控制台中保持命令在循环中运行

时间:2016-05-26 03:46:51

标签: javascript jquery browser css-selectors

我有一个仅在页面(或页面的一部分)仍在加载时出现的web元素,并在页面完全加载时消失。我想确切地看到这个元素何时消失,我可以通过在浏览器控制台中反复运行类似的东西来做到这一点:

$("div.v-app-loading")

或者:

document.getElementsByClassName('v-app-loading')

但在大多数情况下,一切都发生得太快,我无法抓住确切的时刻。必须有一种方法来创建一个循环,它将在控制台中运行并执行我提到的一个命令,每隔0.5秒或更频繁地执行一次。

有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:1)

您可以使用Javascript的setInterval(),如下所示:

function yourFunction(){
    //do something here...
}
setInterval(yourFunction(), 500); //Will run the function every half a second(500ms = 0.5s)

答案 1 :(得分:0)

使用jQuery检测页面加载时可能更容易:

HTML

<body class="loading">

JS

// do something initially here

$(window).load(function () {
    // do something when finished loading
    $('body').removeClass('loading');
});

编辑:如果您想要检查是否存在元素,请在递归函数调用中执行此操作。您可以使用setTimeout对其进行限制,但您不需要:

function checkElement() {
    if ($('.v-app-loading').length) {
        checkElement();
        // or: setTimeout(checkElement, 100);
    } else {
        // Element disappeared
    }
}

checkElement();