侧边栏壁纸
博主头像
MicroMatrix博主等级

曲则全,枉则直,洼则盈,敝则新,少则得,多则惑。是以圣人抱一为天下式。不自见,故明;不自是,故彰;不自伐,故有功;不自矜,故长。夫唯不争,故天下莫能与之争。古之所谓“曲则全”者,岂虚言哉!诚全而归之。

  • 累计撰写 80 篇文章
  • 累计创建 21 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Javascript 模拟输入并触发事件

蜗牛
2022-04-30 / 0 评论 / 0 点赞 / 5 阅读 / 2568 字 / 正在检测是否收录...

问题

通常我们编写脚本时会涉及到用户输入字符的操作。对于大部分网站来说,使用的都是input或者一些用contenteditable=true这种属性来完成用户的输入。

然而,网站通常会在用户输入时进行一些JS操作。因此,在JS脚本中,如果单纯地在input里面填入文字,它不会触发网站的JS操作。查询资料后,得知可以通过EventTarget.dispatchEvent来重新初始化事件。这样,在脚本填入文字时就能触发网站原本的操作了。

代码解决

以下是whatApp聊天输入框的捕获代码:

//获取输入框DOM元素

let list = document.querySelectorAll("div.selectable-text"); list[list.length - 1];

//new 一个动作事件设置冒泡事件来触发他的动作

let event = new Event('input',{bubbles:true});

list[list.length - 1].append("1234");

list[list.length - 1].dispatchEvent(event);

//点击触发,让它冒泡一下

list[list.length - 1].click()
0

评论区