我正在尝试创建一个Chrome扩展,它允许我按下键盘上的一个键,并将其映射到屏幕上的HTML按钮。当我尝试运行它的时候,控制台输出的是:Uncaught TypeError: Cannot read property 'dispatchEvent' of null。我只是想让点击起作用,然后再把它映射到一个键上,但是我做不到。
任何帮助都将不胜感激。下面是我的代码:
const selector = 'button.btn-standard.call-to-action';
const button = document.querySelector(selector);
const triggerClick = (target) => {
let event = document.createEvent ('MouseEvents');
event.initEvent ('mousedown', true, true);
target.dispatchEvent(event);
event = document.createEvent ('MouseEvents');
event.initEvent ('mouseup', true, true);
target.dispatchEvent(event);
};
triggerClick(button);按钮<button class="btn-standard call-to-action">Search</button>的HTML
更新:我让它在控制台中工作,但当我尝试通过chrome扩展使用它时,我收到了这个错误。我相信这是因为chrome扩展不能通过popup.HTMl执行JS,所以我把它放在background.js中,但我似乎仍然不能让它工作
发布于 2020-09-05 04:10:22
根据提供的JS,我猜测按钮的HTML和HTML类有问题。下面的代码片段不会重现该错误。
const selector = 'button.btn-standard.call-to-action';
const button = document.querySelector(selector);
const triggerClick = (target) => {
let event = document.createEvent('MouseEvents');
event.initEvent('mousedown', true, true);
target.dispatchEvent(event);
event = document.createEvent ('MouseEvents');
event.initEvent ('mouseup', true, true);
target.dispatchEvent(event);
};
triggerClick(button);<button class="btn-standard call-to-action">BUTTON</button>
https://stackoverflow.com/questions/63747318
复制相似问题