网页按键精灵怎么用(按键精灵检测网页是否加载完成)

网页按键精灵怎么用,这段时间很多网友对这个问题非常关心。捷骏网今天统一为大家解答!还有部分网友想知道按键精灵检测网页是否加载完成,本站以为你整理好相关内容,希望能帮助到你!

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; i<all_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; i<all_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; i<all_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加密后,会变成如下形式,而使用不受任何影响:

网页按键精灵怎么用(按键精灵检测网页是否加载完成)

注:左侧为原始代码,右侧为加密后的代码。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年10月2日 14:41:50
下一篇 2022年10月2日 14:52:01

相关推荐