xyb_yuan 发表于 2021-10-31 18:48:28

遮罩层的“确定”按钮点击不起作用

本帖最后由 xyb_yuan 于 2021-10-31 18:52 编辑

一个phpwind论坛。发帖时会弹出一个警告窗口,点击确定才能发帖。
用开发者工具查看dom结构如下:

<div class="layui-layer-btn layui-layer-btn-">
    <a class="layui-layer-btn0">确定</a>
</div>


于是,在油猴脚本里有如下代码, 用的jquery:
$('a.layui-layer-btn').click()

可是,这段代码死活不起作用。通过前后打印输出,代码确实运行了,也不报错。就是没有效果。
我详细查看了手动操作时的情况。很简单,就是鼠标单击“确定”,然后遮罩层消失。

脚本体验师001 发表于 2021-10-31 18:48:29

xyb_yuan 发表于 2021-11-2 00:28
楼上的,这三种写法一毛一样啊。 都是无效的。

延迟时间后执行试试
unsafeWindow.$('a.layui-layer-btn0').click() 试试
再不行真的是有限制,那无能为力了,找大佬去吧

lty123 发表于 2021-10-31 20:24:19

直接把这个提示框display:none管用吗

王一之 发表于 2021-10-31 22:50:12

打印 $('a.layui-layer-btn') 看看有没有定位到吧,我觉得是没有的,如果有也是一批数组,jQuery的click,应该是只click第一个

李恒道 发表于 2021-10-31 23:08:43

可能是找错按钮了
代码调试debugger去看看定位到哪了

xyb_yuan 发表于 2021-10-31 23:19:37

打印那个选择器是没毛病的。 在console里调试那个选择器,确实找到了,切只有一个。
直接删除那个对话框,遮罩层还在,还是什么也操作不了。

cxxjackie 发表于 2021-11-1 00:24:51

有没有试过在控制台里调用click呢?如果控制台里也无效,那可能就是做了检测。另外有时在一些回调函数里调用click也有问题,原因跟执行顺序有关,可以用setTimeout 0包一下转成异步试试。还有遮罩层其实也是一个元素,能定位到的话直接屏蔽也可以。

xyb_yuan 发表于 2021-11-1 08:06:40

在控制台里直接click() 也无效。

李恒道 发表于 2021-11-1 09:46:33

xyb_yuan 发表于 2021-11-1 08:06
在控制台里直接click() 也无效。

可能是有检测?
哥哥可以远程看看
QQ4548212

cxxjackie 发表于 2021-11-1 10:37:01

xyb_yuan 发表于 2021-11-1 08:06
在控制台里直接click() 也无效。

这种要分析得跟源码了,还是建议直接css把遮罩层干掉。
页: [1] 2
查看完整版本: 遮罩层的“确定”按钮点击不起作用