巧用定时器自动在直播间发言

2017年7月8日19:26:15 发表评论 已收录

最近有朋友分享了一段有趣的代码,在直播间中自动灌水。代码如下:

setInterval(function (){
        //这个数组中的数据为随机生成的灌水内容
        var arr=['666666','6666']
        //动态获取页面中的输入框 (这里的以斗鱼直播间的输入框类名为例)
        var txtarea=document.querySelector('.cs-textarea').value=arr[parseInt(Math.random()*arr.length)];
        //创建一个指定类型的事件。其返回的对象必须先初始化并可以被传递给 element.dispatchEvent。
        //关于document.createEvent相关文档查阅 https://developer.mozilla.org/zh-CN/docs/Web/API/Document/createEvent
        var myevent = document.createEvent("MouseEvents");
        //初始化Event对象
        myevent.initEvent("click", true, true);
        //获取点击按钮 并且绑定Event对象
        document.querySelector(".b-btn").dispatchEvent(myevent);
    }
,200)

关于dispatchEvent()方法的描述

该方法将分派一个合成事件,它由 Document.createEvent() 创建,由 Event 接口或它的某个子接口定义的初始化方法初始化。

调用该方法的节点将成为事件的目标节点,该事件在捕捉阶段中第一次沿着文档树向下传播。如果该事件的 bubbles 属性为 true,那么在事件的目标节点自身处理