引言
今天用js操作dom,模拟点击一个按钮,发现无效!但是手动点击又有效!
错误的分析
目标 dom 一共绑定了两个监听器,第一个是实际业务代码,第二个是空函数。
那么模拟点击的时候,只有第二个监听器起作用,第一个监听器被第二个覆盖掉了,不起作用了。
正确的分析
实际情况是:两个监听器的代码确实都执行了,不存在谁覆盖谁一说,但是由于没有输入付款金额,导致业务代码无法正常执行!
如下图:不输入付款金额,即使手动点击【确认支付】,也没有任何反应!
clipboard.js 模拟点击无效
clipboard.js 是一个插件,可以实现【点击按钮复制】的功能,你手动点击相应按钮,就可以复制内容到剪贴板,但是你用 js 模拟点击,就不行。原因是:出于安全考虑,被浏览器拦截了。