javascript - 检测异步加载的按钮

标签 javascript html button asynchronous

在我正在查看的网页上,有大量数据正在异步加载。

该数据中包含一个名为“查看更多”的按钮。如果您单击按钮或直接向右滚动到底部,将通过“GET”调用函数加载更多数据。

当我尝试使用它时(在 FireBug 控制台中):

document.getElementById('#button9').click();

document.getElementById('button9').click();

我得到这个结果:

TypeError: document.getElementById(...) is null

document.getElementById('#button9').click();

根据我读到的有关此 TypeError 的信息,无法检测到 Id,我认为这是因为数据是异步的。有没有办法检测该元素(它不会显示在“页面源”上,但当我单击“使用 FireBug 检查元素”时它就在那里)?

我想检测该元素,然后调用单击事件来“模拟单击”(这意味着我希望在不单击按钮或向下滚动的情况下进行单击)并显示输出在浏览器中(按照惯例)。

最佳答案

如果您只想附加事件,那么底部就可以了。

如果问题是它为空,并且您不知道它何时会出现,那么最好的选择是创建一个循环,运行直到它存在为止。

var obj = document.getElementById('button9');
obj.addEventListener('click', function() {
 alert(' you clicked on ' + this);
}, false);

如果是第二个实例,并且您想等到对象事件发生,则使用:

checkExists(); 

function checkExists() {
    var obj = document.getElementById('button9');
    if (obj != null) {
        obj.addEventListener('click', function() {
             alert(' you clicked on ' + this);
        }, false);
        alert('added event');
    }
    else {
        setTimeout(checkExists, 1000);
    }
}

关于javascript - 检测异步加载的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20432446/

相关文章:

javascript - modernizr CSS3 动画回退到 swf

html - 无法获得相邻的 "First Name"和 "Last Name"文本字段

java - 按钮背景颜色更改不起作用

android - Kotlin 中的按钮数组

Javascript 返回封闭函数

javascript - react /Redux : Where to put jQuery event handlers in component awaiting async data

html - 将绝对位置 div 高度扩展到内容的大小

html - CSS/HTML 适合任何分辨率

java - 将按钮或图像居中

javascript - 当手机锁 native react 时 Socket.io 失去连接