微信自动发信息的JS代码,为啥要有t("keydown", { keyCode: 13,ctrlKey: true}这句?

新手上路,请多包涵

function show()
{$('.edit_area').html('需要发送的字');
$(".edit_area").trigger($.Event("keydown", { keyCode: 13,ctrlKey: true}));
$('.btn_send').click();}

var sh;
sh=setInterval(show,3000);

这段是知乎某高手摘下来的可以微信自动发信息的JS,在下实在搞不明白,为啥要有:$.Event("keydown", { keyCode: 13,ctrlKey: true 这句?请指教!!谢谢!!!

阅读 3.4k
2 个回答

13是enter键的keyCode,这行代码是模拟ctrl+enter的按键事件,看起来和下面的click事件作用重复。
个人猜想是某种情况下只有其中一种生效

更新 09.18 20:42:

有种可能: 有些大厂(比如阿里),在文本输入这种情况,为了防自动化,会在按下“发送”时检查编辑框是否有被触发过按键事件。这很好做,事件监听里写个标志位就行了,但是效果很好用: 如果你只是 elem.html(...) 这种形式替换了文本框的内容,而不触发按键事件,它就知道你是代码模拟的文本输入。

这只是我想到的一种情况,我没看过微信web端的实现,只能做些猜测了 : p

原答案:

因为微信可以设置按键,这个是PC端的:

clipboard.png

所以为了顾全所有情况,就把两种按键都模拟了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题