tansuo 发表于 2023-11-7 19:59:54

模拟点击出错

本帖最后由 tansuo 于 2023-11-7 20:42 编辑

> 本帖最后由 tansuo 于 2023-11-7 20:15 编辑

> 本帖最后由 tansuo 于 2023-11-7 20:11 编辑

> 本帖最后由 tansuo 于 2023-11-7 20:10 编辑



html代码
![无标题.png](data/attachment/forum/202311/07/200955m8kj3jyqq7je4zjj.png)


!(data/attachment/forum/202311/07/201102fsdz5e2drki6dij2.png)

document.getElementById('treeDemo_28_switch')如上图子菜单展开
document.getElementById('treeDemo_28_a')没有反应 如图 如果模拟点击成功另一边会显示第二章内容,可是现在显示第一章内容
document.getElementById('treeDemo_28_span')时报错 Uncaught TypeError: Cannot read properties of undefined (reading 'getZTreeObj')
代码如下



// ==UserScript==
// @name         Click Tree Demo
// @match      https://*
// @grant      none
// @require      http://code.jquery.com/jquery-3.6.0.min.js
// ==/UserScript==
// 设置模拟点击的时间间隔(单位:毫秒)
var clickInterval = 5000;
// 获取目标 ul 元素
var treeDemo = document.getElementById('treeDemo_28_span');
console.log(treeDemo);
// 判断目标 ul 元素是否存在
if (treeDemo) {
// 每隔一段时间模拟点击一次目标 ul 元素
setInterval(function() {
    // 使用 jQuery 的 click() 方法模拟点击事件
    $(treeDemo).click();
      console.log('点击!');
}, clickInterval);
} else {
console.log('目标 ul 元素不存在!');
}

李恒道 发表于 2023-11-7 19:59:55

[油猴脚本开发指南]元素规则校验和检测的触发
https://bbs.tampermonkey.net.cn/thread-1250-1-1.html

tansuo 发表于 2023-11-7 20:02:47

本帖最后由 tansuo 于 2023-11-7 20:12 编辑

编辑问题 删除了

李恒道 发表于 2023-11-7 20:24:34

具体的问题是什么
找不到元素吗

tansuo 发表于 2023-11-7 20:39:54

李恒道 发表于 2023-11-7 20:24
具体的问题是什么
找不到元素吗

我打印那个是那个id所在的元素,那个报错的程序也可以运行到打印点击

李恒道 发表于 2023-11-7 22:05:33

tansuo 发表于 2023-11-7 20:39
我打印那个是那个id所在的元素,那个报错的程序也可以运行到打印点击 ...

具体的问题是什么
点不了还是没执行到

tansuo 发表于 2023-11-7 23:26:46

李恒道 发表于 2023-11-7 22:05
具体的问题是什么
点不了还是没执行到

运行到这一行代码console.log('点击!');,因为控制台不停打印点击,但是如果模拟点击成功会显示第二章内容,我发的第二张图片却显示第一章内容

tansuo 发表于 2023-11-7 23:31:47

李恒道 发表于 2023-11-7 22:05
具体的问题是什么
点不了还是没执行到

document.getElementById('treeDemo_28_switch')如上图子菜单展开
document.getElementById('treeDemo_28_a')没有反应 如图 如果模拟点击成功另一边会显示第二章内容,可是现在显示第一章内容
document.getElementById('treeDemo_28_span')时报错 Uncaught TypeError: Cannot read properties of undefined (reading 'getZTreeObj')         
我用上面脚本总共尝试获取三次id,运行结果如上,原帖配图更详细,不行,大佬,明天QQ找你

李恒道 发表于 2023-11-7 23:35:00

tansuo 发表于 2023-11-7 23:31
document.getElementById('treeDemo_28_switch')如上图子菜单展开
document.getElementById('treeDemo_28 ...

你应该是没判断子菜单的对应dom元素或者事件监听器没正确触发的问题
[油猴脚本开发指南]去除网页广告以及去除元素
https://bbs.tampermonkey.net.cn/thread-688-1-1.html
不是这篇就是上面那篇

tansuo 发表于 2023-11-8 07:48:45

本帖最后由 tansuo 于 2023-11-8 07:50 编辑

李恒道 发表于 2023-11-7 23:35
你应该是没判断子菜单的对应dom元素或者事件监听器没正确触发的问题
[油猴脚本开发指南]去除网页广告以及 ...
是模拟点击 第二章科学 全面评价阳光玫瑰葡萄 那个id为treeDemo_28_span出现的错误Uncaught TypeError: Cannot read properties of undefined (reading 'getZTreeObj')   错误代码在下面,应该是网站的,我去研究一下大佬你提供的解决思路
//点击时先判断如果在其他父节点下则先闭合当前展开的父节点
    function zTreeBeforeClick(treeId, treeNode, clickFlag) {
            var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
            var rootNode = zTree.getNodeByParam("level", 0, null);
            zTree.expandAll(false);// 折叠树的所有结点
                //zTree.expandNode(rootNode); // 展开根节点
                if (treeNode.isParent) {
                        zTree.expandNode(treeNode);
                }else{
                        if(treeNode.level>=1){
                              zTree.expandNode(treeNode.getParentNode()); // 只展开当前节点
                        }
                }
      return true;
    }
页: [1] 2
查看完整版本: 模拟点击出错