我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何用JavaScript实现一个按键精灵

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何用JavaScript实现一个按键精灵

本篇内容介绍了“如何用JavaScript实现一个按键精灵”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

JavaScript奇淫技巧:按键精灵

按键精灵之类的自动化工具,可以解放双手,帮我们自动完成许多工作,在很多场景中,可以极大提升生产力。

本文将展示:用JavaScript实现一个“按键精灵”,演示自动完成点击、聚焦、输入等操作。

实现效果

如何用JavaScript实现一个按键精灵

如上图动画,在页面中,自动执行了如下操作:

1、间隔一秒依次点击两个按钮;

2、给输入框设置焦点;

3、在输入框输入文字;

4、点击打开链接;

功能原理

原理并不复杂,获取元素,并执行点击、设焦点等事件。

难点有两处:

1、没有ID、Name的元素,不能使用getElementById、getElementByName,如何对其定位;

解决方法是:使用querySelectorAll获取页面所有元素,然后用匹配源码的方式,精确定位元素。代码如下:

如何用JavaScript实现一个按键精灵

2、如何设置延时:点击一个位置后,等待几秒,再执行下一个操作。

解决方法是:使用setTimeOut及回调函数。代码如下:

如何用JavaScript实现一个按键精灵

重点代码详解

依前面讲述的原理,准备好点击、设焦点、赋值函数,如下:

如何用JavaScript实现一个按键精灵

调用时,传入源码、延时值、回调函数。

即:对指定源码的元素进行操作,然后延时一定时长,再执行回调函数。

如何用JavaScript实现一个按键精灵

其中源码部分可以在页面查看器中获得,如下图所示:

如何用JavaScript实现一个按键精灵

完整源码

这里再给出以上示例的完整代码,保存为html即可运行。

<html>
<body>
<script>
document.body.addEventListener("click", function(e) {
console.log('点击:',e.originalTarget);
});
</script>
<h2>JS版按键精灵</h2>
<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加密后,会变成如下形式,而使用不受任何影响:

如何用JavaScript实现一个按键精灵

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

“如何用JavaScript实现一个按键精灵”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何用JavaScript实现一个按键精灵

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java如何实现按键精灵

本篇内容主要讲解“Java如何实现按键精灵”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java如何实现按键精灵”吧!实现效果背景对于日常刷课每十分钟点击“继续学习”的行为,或者说是单机游戏里某
2023-06-30

详解教你Win10如何使用一键还原精灵

一键还原精灵是Windows 10操作系统自带的恢复工具,可以帮助用户在系统出现问题时恢复到之前的状态。下面是详细的使用教程:1. 打开“设置”:点击Windows开始菜单,选择“设置”图标(齿轮状图标)。2. 进入“更新和安全”:在“设置
2023-09-17

javascript使用alert实现一个精美的弹窗

其实最初使用alert还是一个常态,包括现在很多B端平台还在直接使用alert,本文主要介绍了javascript使用alert实现一个精美的弹窗,感兴趣的可以了解一下
2023-02-22

javascript怎么使用alert实现一个精美的弹窗

这篇文章主要讲解了“javascript怎么使用alert实现一个精美的弹窗”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript怎么使用alert实现一个精美的弹窗”吧!一、为
2023-07-05

怎么实现一个按Home键退出应用的功能

怎么实现一个按Home键退出应用的功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。实例如下:func exitApplication() { let app =
2023-05-31

使用javascript如何实现一个下雪特效

使用javascript如何实现一个下雪特效?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。JavaScript的作用是什么1、能够嵌入动态文本于HTML页面。2、对浏览器事件做
2023-06-14

如何用JavaScript实现返回顶部按钮

本篇内容主要讲解“如何用JavaScript实现返回顶部按钮”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用JavaScript实现返回顶部按钮”吧!1.先搭架子a {
2023-06-25

如何用Golang实现一套灵活的JWT库

如何用Golang实现一套灵活的JWT库,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。JWT 全 chen JSON Web Tokens 现在被广泛的应用于各
2023-06-16

JavaScript如何实现页面一键全选或反选

这篇文章主要介绍“JavaScript如何实现页面一键全选或反选”,在日常操作中,相信很多人在JavaScript如何实现页面一键全选或反选问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript如
2023-07-02

如何使用JavaScript实现一个拖拽缩放效果

这篇文章主要介绍“如何使用JavaScript实现一个拖拽缩放效果”,在日常操作中,相信很多人在如何使用JavaScript实现一个拖拽缩放效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用JavaS
2023-06-30

如何在Android应用中实现一个返回键功能

今天就跟大家聊聊有关如何在Android应用中实现一个返回键功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。记录用户点击的操作历史,使用栈数据结构,频繁的操作栈顶(添加,获取,删除
2023-05-31

如何利用JavaScript差集实现一个对比小工具

本篇内容介绍了“如何利用JavaScript差集实现一个对比小工具”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言在工作中需要每周统计人员
2023-06-20

Android 应用中如何实现按返回键后台运行

这篇文章将为大家详细讲解有关Android 应用中如何实现按返回键后台运行,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Android应用开发按下返回键退向后台运行我们日常使用的很多Andr
2023-05-31

编程热搜

目录