我正在尝试通过Chrome扩展程序的内容脚本在活动网页上触发点击事件。尽管代码已注入到网页中,并且代码中的警报语句为我提供了结果,但是click事件无法触发现有的侦听器事件,因此无法获得预期的效果。
以下是我要注入的内容脚本代码:
var script = "var x = document.getElementsByClassName('map-ui');\
var listOfSuperBlocks = x[0].getElementsByClassName('superblock');\
alert('Alert gets triggered in the main page');\
console.log('This gets printed');\
var eventReturn = listOfSuperBlocks[6].dispatchEvent(new MouseEvent('click'));\
console.log('No click event gets triggerd in main page. Value of eventReturn is true');\
alert('This alert also gets triggerd');";
var scriptElement = document.createElement("script");
scriptElement.innerHTML = script;
document.head.appendChild(scriptElement);
如上所述,警报和控制台消息正在按预期方式打印。但是click事件不会触发,并且eventReturn值为true。
这是因为某些事件传播被阻止了吗?
功能triggerEvent(el,类型){var e = document.createEvent('HTMLEvents');e.initEvent(type,false,true);
el.dispatchEvent(e);}
triggerEvent(listOfSuperBlocks[6],"mousedown")