e.isTrusted=true事件如何用JS触发

img

img


我把图中待支付的按钮3个字扣了之后使用鼠标左键点击按钮仍然能跳转,但是当我用js获取到该按钮后执行click()无响应,请问是什么原因,有没有人可以指点一下

补充,onClick值为null,style.display为flex,disabled为undefined

img


补充:使用dispatchEvent模拟鼠标点击,返回true无跳转

最新
补充:经我多方百度,已经确定是点击事件e的isTrusted值问题,只有手动点击才是true才能触发,现在问题是如何把e.isTrusted改为true

下图为代码点击

img

下图为我将网络设置为脱机后手动点击

img

以下答案基于ChatGPT与GISer Liu编写:
可能有多种原因导致这种行为。以下是一些可能的解决方案:

  1. 确保你使用的是正确的元素选择器来获取按钮。你可以使用浏览器开发者工具检查页面上的元素并尝试使用正确的选择器。如果选择器错误,则无法正确获取到该按钮。

  2. 确保在调用 方法之前,该按钮已完全加载和渲染。你可以在页面加载完毕后等待一段时间,或者使用 事件来确保页面和按钮已加载完毕。click()window.onload

  3. 如果该按钮是在 iframe 中,则需要先获取 iframe 的引用,然后再从 iframe 中获取按钮元素。

  4. 检查该按钮是否有其他事件监听器或处理程序。如果该按钮已经绑定了其他事件,则可能会阻止 方法的执行。你可以使用 方法来删除该事件处理程序。click()removeEventListener()

  5. 有些网站可能使用了防止自动化脚本的技术,例如人机验证、滑块验证码、请求头验证等,这些技术可能会导致 方法无效。在这种情况下,你需要手动模拟用户交互,例如模拟键盘输入、鼠标移动等。click()

希望这些解决方案能帮助你解决问题。如果问题仍然存在,请提供更多详细信息,以便我们更好地帮助你解决问题。

使用方法测试下,是否有反应:

document.querySelector('.react-view')[74].onclick=function(){
alert("有反应");
}

或者

document.querySelector('.react-view')[74].addEventListener('click', function(){
            alert("有反应");
        })

测试看看

首先是要确保你的元素是否定位正确?
其二要确保页面是否加载完全?
另外还需要排查是否有其他事件阻止?

第一你要获取单个节点,第二不是click()而是 节点.onclick()

可能是因为按钮的点击事件是绑定在父元素上的,而不是绑定在按钮自身上的。这种情况通过js模拟点击事件可能会失败。你可以尝试使用dispatchEvent方法来模拟点击事件

例如:
let cli = document.getElementById("toolbar-search-button")
cli.onclick = function cliFun(e){
    //阻止事件冒泡 
    //防止点击cli的时候隐藏了父级domClick
    e.stopPropagation();
console.log('666')
}

使用JavaScript脚本语言和jQuery库可以实现代码中模拟点击事件,在指定时间触发onclick事件对对象,最后实现京东按钮点击效果。

该回答内容部分引用GPT,GPT_Pro更好的解决问题
可能是按钮的一些属性设置的问题。首先可以先检查下该按钮是否可以使用js获取到,如果可以,再分析是不是其他属性的问题。例如,该按钮有没有被设置为disabled,或者有没有被隐藏,或者有没有设置onclick事件,这些都是影响点击效果的因素。

可以打开浏览器的开发者工具,使用审查元素功能对该按钮进行分析,看看该按钮有没有被设置disabled属性,有没有被隐藏display:none,或者有没有设置onclick事件等等。

也可以使用js来进行分析,例如使用js来获取到该按钮的相关属性:

var btn = document.getElementByID('btn');  // 获取到该按钮
var isDisabled = btn.disabled;  // 获取disabled属性
var isHidden = btn.style.display;  // 获取display属性
var isOnclick = btn.onclick;  // 获取onclick属性

通过上述的方式,就可以根据相应的属性值来判断是不是由于这种原因导致该按钮无法正常点击。
如果回答有帮助,望采纳。