首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未捕获TypeError:无法读取null的属性'dispatchEvent‘。不知道发生了什么

未捕获TypeError:无法读取null的属性'dispatchEvent‘。不知道发生了什么
EN

Stack Overflow用户
提问于 2020-09-05 03:55:59
回答 1查看 1.1K关注 0票数 0

我正在尝试创建一个Chrome扩展,它允许我按下键盘上的一个键,并将其映射到屏幕上的HTML按钮。当我尝试运行它的时候,控制台输出的是:Uncaught TypeError: Cannot read property 'dispatchEvent' of null。我只是想让点击起作用,然后再把它映射到一个键上,但是我做不到。

任何帮助都将不胜感激。下面是我的代码:

代码语言:javascript
运行
复制
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中,但我似乎仍然不能让它工作

EN

回答 1

Stack Overflow用户

发布于 2020-09-05 04:10:22

根据提供的JS,我猜测按钮的HTML和HTML类有问题。下面的代码片段不会重现该错误。

代码语言:javascript
运行
复制
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);
代码语言:javascript
运行
复制
<button class="btn-standard call-to-action">BUTTON</button>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63747318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档