如何用JavaScript实现一个按键精灵?方法是什么?
导读:在实际案例的操作过程中,我们可能会遇到“如何用JavaScript实现一个按键精灵?方法是什么?”这样的问题,那么我们该如何处理和解决这样的情况呢?这篇小编就给大家总结了一些方法,具有一定的借鉴价值,希望对大家有所帮助,接下来就让小编带领大...
在实际案例的操作过程中,我们可能会遇到“如何用JavaScript实现一个按键精灵?方法是什么?”这样的问题,那么我们该如何处理和解决这样的情况呢?这篇小编就给大家总结了一些方法,具有一定的借鉴价值,希望对大家有所帮助,接下来就让小编带领大家一起了解看看吧。
JavaScript奇淫技巧:按键精灵
按键精灵之类的自动化工具,可以解放双手,帮我们自动完成许多工作,在很多场景中,可以极大提升生产力。
本文将展示:用JavaScript实现一个“按键精灵”,演示自动完成点击、聚焦、输入等操作。
实现效果
如上图动画,在页面中,自动执行了如下操作:
1、间隔一秒依次点击两个按钮;
2、给输入框设置焦点;
3、在输入框输入文字;
4、点击打开链接;
功能原理
原理并不复杂,获取元素,并执行点击、设焦点等事件。
难点有两处:
1、没有ID、Name的元素,不能使用getElementById、getElementByName,如何对其定位;
解决方法是:使用querySelectorAll获取页面所有元素,然后用匹配源码的方式,精确定位元素。代码如下:
2、如何设置延时:点击一个位置后,等待几秒,再执行下一个操作。
解决方法是:使用setTimeOut及回调函数。代码如下:
重点代码详解
依前面讲述的原理,准备好点击、设焦点、赋值函数,如下:
调用时,传入源码、延时值、回调函数。
即:对指定源码的元素进行操作,然后延时一定时长,再执行回调函数。
其中源码部分可以在页面查看器中获得,如下图所示:
完整源码
这里再给出以上示例的完整代码,保存为html即可运行。
html> body> script> document.body.addEventListener("click", function(e) { console.log('点击:',e.originalTarget); } ); /script> h1> JS版按键精灵/h1> div> 一、按钮:br> button style="width: 100px; height:100px; " onclick="alert('1被点击'); "> 1/button> button style="width: 100px; height:100px; " onclick="alert('2被点击'); "> 2/button> br> br> 二、输入框: input type="text" value=""> br> br> 三、链接:a href="http://jshaman.com" target="iframe1"> jshaman.com/a> br> iframe name="iframe1"> /iframe> /div> br> hr> button onclick="fun1(); "> 开始自动执行/button> br> 依次执行以下操作:br> 1、点击第一、第二按钮;2、给输入框设置焦点;3、给输入框设置值:abc;4、点击链接; br> /body> script> //点击事件 //参数: //outer_html:要点击的元素源码 //delay:延时 //call_back:回调函数 function click(outer_html, delay, call_back){ //获取页面所有元素 var all_elements = document.querySelectorAll('*'); //遍历元素 for(i=0; iall_elements.length; i++){ //匹配符合条件的元素 if(all_elements[i].outerHTML==outer_html){ //点击 all_elements[i].click(); } } if(delay & & call_back){ //过多少毫秒后执行回调函数 setTimeout(call_back, delay) } } ; //设置焦点,即选中 //参数: //outer_html:元素源码 //delay:延时 //call_back:回调函数 function focus(outer_html, delay, call_back){ //获取页面所有元素 var all_elements = document.querySelectorAll('*'); //遍历元素 for(i=0; iall_elements.length; i++){ //匹配符合条件的元素 if(all_elements[i].outerHTML==outer_html){ //设焦点 all_elements[i].focus(); } } if(delay & & call_back){ //过多少毫秒后执行回调函数 setTimeout(call_back, delay) } } ; //设置内容 function setvalue(outer_html, type, value, delay, call_back){ //获取页面所有元素 var all_elements = document.querySelectorAll('*'); //遍历元素 for(i=0; iall_elements.length; i++){ //匹配符合条件的元素 if(all_elements[i].outerHTML==outer_html){ //点击 all_elements[i][type] = value; } } if(delay & & call_back){ //过多少毫秒后执行回调函数 setTimeout(call_back, delay) } } ; //点击按钮 function fun1(){ //要点击的元素的源码 var outer_html = `button style="width: 100px; height:100px; " onclick="alert('1被点击'); "> 1/button> `; click(outer_html, 1000, fun2); } //点击按钮 function fun2(){ //要点击的元素的源码 var outer_html = `button style="width: 100px; height:100px; " onclick="alert('2被点击'); "> 2/button> `; click(outer_html, 1000, fun3); } //给input设置焦点和值 function fun3(){ //要点击的元素的源码 var outer_html = `input type="text" value=""> `; focus(outer_html); setvalue(outer_html,"value","abc",1000,call_back_function) } //点击链接 function call_back_function(){ var out_html = `a href="http://jshaman.com" target="iframe1"> jshaman.com/a> `; click(out_html); console.log("已完成自动点击") } /script> /html>
代码安全性
公开透明的JavaScript很容易被看懂功能逻辑,也可以被任意修改。如果希望提高代码安全性,应对代码加密保护。比如,可以使用专业的JavaScript代码混淆加密工具JShaman。上面完整源码中的JavaScript代码经JShaman加密后,会变成如下形式,而使用不受任何影响:
注:左侧为原始代码,右侧为加密后的代码。
到此这篇关于“如何用JavaScript实现一个按键精灵?方法是什么?”的文章就介绍到这了,感谢各位的阅读,更多相关如何用JavaScript实现一个按键精灵?方法是什么?内容,欢迎关注网络资讯频道,小编将为大家输出更多高质量的实用文章!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何用JavaScript实现一个按键精灵?方法是什么?
本文地址: https://pptw.com/jishu/653367.html