温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
  • 忘记密码?
登录注册×
获取短信验证码
其他方式登录
点击 登录注册 即表示同意 《亿速云用户服务条款》
  • 服务器
  • 数据库
  • 开发技术
  • 网络安全
  • 互联网科技
登 录 注册有礼
最新更新 网站标签 地图导航
产品
  • 首页 > 
  • 教程 > 
  • 开发技术 > 
  • web开发 > 
  • 如何用JavaScript实现一个按键精灵

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

发布时间:2022-08-08 14:22:27 来源:亿速云 阅读:167 作者:iii 栏目: web开发

本篇内容介绍了“如何用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实现一个按键精灵”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节
推荐阅读:
  1. 如使用JavaScript实现抖音罗盘时钟
  2. 如使用JavaScript实现无刷新上传预览图片功能

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

javascript
  • 上一篇新闻:
    怎么使用js实现模拟鼠标拖拽事件
  • 下一篇新闻:
    js怎么实现dom元素横向及纵向滚动的动画

猜你喜欢

  • javascript排序函数的方法是什么
  • 台湾代理ip服务器软件有哪些
  • 国内cn2云服务器租用怎么选择提供商
  • 韩国cn2高防服务器租用有哪些好处
  • 日本cn2虚拟主机租用有哪些优势
  • 韩国免备案cdn服务器租用有哪些优点
  • 韩国免备案cdn能防御网络攻击吗
  • 服务器托管优缺点是什么
  • java集合类型不包括什么
  • 境外免备案cdn怎么租用
最新资讯
  • 如何在Elixir中使用广播通知系统组件
  • 如何在Elixir中实现基于角色的访问控制
  • Elixir与其他函数式编程语言相比有哪些独特的特性
  • 如何在Elixir中实现乐观锁定机制
  • Elixir应用的内存优化技巧有哪些
  • 在Elixir中如何结合使用OTP和WebSockets构建实时应用
  • Elixir的宏系统有哪些高级用法
  • 如何在Elixir中优化长轮询
  • Elixir中的错误日志管理最佳实践是什么
  • 如何在Elixir中处理大规模并发连接
相关推荐
  • JavaScript实现按键精灵的原理分析
  • 如何用javaScript实现一个队列
  • 如何用javascript对象删除一个属性
  • 如何用javascript实现左滑删除
  • 如何用JavaScript实现定时关闭div
  • 如何用javascript实现置顶
  • 如何用javascript实现反转义
  • 如何用JavaScript实现楼层效果
  • 如何用javascript实现提示框
  • Java如何实现按键精灵

相关标签

javascript对象 何为javascript原型?读完你就明 javascript函数 javascript/jquery 防御系统 orion 段 库备份 codec pagecontrol solrj clock 查询数据 服务名 autorelease 创建过程 静态注册 动态注册 下拉列表 绘制曲线
AI

深圳SEO优化公司东莞阿里店铺运营福永企业网站设计南联百搜词包同乐网站建设南澳网站seo优化平湖营销型网站建设南联网站开发东莞百搜词包南山外贸网站制作坪山网站seo优化双龙网站优化软件平湖企业网站建设横岗SEO按效果付费双龙网站seo优化南山网站开发布吉网络推广大鹏关键词排名包年推广永湖网站优化排名坂田百度爱采购观澜网站优化按天计费南山模板推广吉祥关键词按天扣费福田建站塘坑seo观澜网络广告推广宝安网站优化排名松岗外贸网站建设罗湖网站改版观澜网站推广石岩英文网站建设歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化