player 发表于 2021-12-22 13:39:14

函数执行先后的问题

function test() {

    //创造“正常全选”按钮元素

    //var query_group = document.getElementsByClassName("query-group");

    var button = document.createElement("input");
    button.setAttribute("type", "button");
    button.setAttribute("id", "checkMe");
    button.setAttribute("value", "正常全选");
    //button.setAttribute("class", "checkMe");

    //query_group.appendChild(button);

    document.getElementsByClassName("query-group")[0].appendChild(button);


}

setTimeout(test,4000);

该代码在控制台的可以执行,在脚本就报错。查下一下大概是函数在页面加载完成前执行的问题。用了window.onload还是不行。
我猜测该网站也是js动态加载的?最后用了定时器可以才达到效果。针对这种情况,还有没有其他解决方法?






李恒道 发表于 2021-12-22 15:09:51

setinterval一般就可以
也可以使用addeventlistener或者mutationobserve
论坛都有教程

王一之 发表于 2021-12-22 15:13:48

脚本的 //@run-at documnet-end 属性呢?

暴力点 定时器问题不大

优雅的就监听元素创建:

[油猴脚本开发指南]MutationObserver简单详解
https://bbs.tampermonkey.net.cn/thread-1007-1-1.html
(出处: 油猴中文网)


[油猴脚本开发指南]MutationObserver简易例子
https://bbs.tampermonkey.net.cn/thread-1008-1-1.html
(出处: 油猴中文网)
页: [1]
查看完整版本: 函数执行先后的问题