JavaScript自动点击链接 防止绕过浏览器访问的方法


Posted in Javascript onJanuary 19, 2017

做支付宝帐号登录,需要做一个效果,就是打开链接页面的时候,不需要点击链接,直接跳到支付宝登录页面。也就是说,需要做一个自动点击链接的效果。

基本都是用这个:

<body onLoad="autoclick('auto')">

<a id='auto' href=".$url."><img border='0' src='images/alipaylog.gif' /></a>

</body>

<script type="text/javascript">


 function autoclick(){

 lnk = document.getElementById("auto");

 lnk.click();

  }

</script>

这个就IE下可以用,其它浏览器都不可以。还转得铺天盖地呢,浪费大家搜索的时间。

下面这个还比较靠谱,先看看吧:

<body onLoad="autoclick('auto')">

<a id='auto' href=".$url."><img border='0' src='images/alipaylog.gif' /></a>

</body>

<script type="text/javascript">  1: 

function autoclick(name)

{  

  if(document.all)  

  {  

    //alert(1);

     document.getElementById(name).click();  

  }  

   else  

  {  

    var evt = document.createEvent("MouseEvents");  

      evt.initEvent("click", true, true);  

    //alert(2);

    document.getElementById(name).dispatchEvent(evt);  

   }  

} 

</script>

这个在Chrome和IE下都能正常,但是在Firefox下就不能了。但总比第一个要优秀。

dispatchEvent在Firefox下是有问题的,下面是解决方案:

document.getElementById("me").onclick = function() {

  var card = document.getElementById("card");

   if(document.createEvent){

    var ev = document.createEvent('HTMLEvents');

    ev.initEvent('click', false, true);

    card.dispatchEvent(ev);

   }

   else 

     card.click();
 }

其中 card元素是绑有事件的元素。me元素是想通过点击 me元素 来调用 card的click事件的元素。。。。

问题的重点在于 firefox 的js引擎需要先创建一个事件:var ev = document.createEvent('HTMLEvents');

然后将事件指定为 click事件:ev.initEvent('click', false, true);

最后将事件付给card元素:card.dispatchEvent(ev);

card = document.getElementById('id');

var ev = document.createEvent('HTMLEvents');

ev.initEvent('click', false, true);

card.dispatchEvent(ev);

由此可见,dispatchEvent 是事件委托中的最后一步,将委托事件与调用的元素链接起来,达到调用这个元素的事件的效果。

最后推荐用 input 来实现,下面是最终解决方案:

<body onLoad="autoclick('auto2')">

 <input id="auto2" type="hidden" onClick="javascript:location.href = '<?=$url?>' " />

</body>

<script type="text/javascript">  1: 

function autoclick(name)

 {  

  if(document.all)  

  {  

    //alert(1);

     document.getElementById(name).click();  

  }  

   else  

  {  

   var evt = document.createEvent("MouseEvents");  

     evt.initEvent("click", true, true);  

    //alert(2);

    document.getElementById(name).dispatchEvent(evt);  

   }  
} 
</script>

以上这篇JavaScript自动点击链接 防止绕过浏览器访问的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js数组方法扩展实现数组统计函数
Apr 09 Javascript
javaScript如何处理从java后台返回的list
Apr 24 Javascript
jquery+php实现搜索框自动提示
Nov 28 Javascript
JavaScript基于setTimeout实现计数的方法
May 08 Javascript
JavaScript中计算网页中某个元素的位置
Jun 10 Javascript
bootstrap模态框垂直居中效果
Dec 03 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
Sep 03 Javascript
React Form组件的实现封装杂谈
May 07 Javascript
Vue起步(无cli)的啊教程详解
Apr 11 Javascript
Node使用Selenium进行前端自动化操作的代码实现
Oct 10 Javascript
使用原生JS实现火锅点餐小程序(面向对象思想)
Dec 10 Javascript
vue项目如何监听localStorage或sessionStorage的变化
Jan 04 Vue.js
AngularJS使用angular.bootstrap完成模块手动加载的方法分析
Jan 19 #Javascript
创建一般js对象的几种方式
Jan 19 #Javascript
用JavaScript实现让浏览器停止载入页面的方法
Jan 19 #Javascript
AngularJS使用ng-inlude指令加载页面失败的原因与解决方法
Jan 19 #Javascript
快速掌握jQuery插件开发
Jan 19 #Javascript
Web 开发中Ajax的Session 超时处理方法
Jan 19 #Javascript
JavaScript DOM节点操作实例小结(新建,删除HTML元素)
Jan 19 #Javascript
You might like
通过curl模拟post和get方式提交的表单类
2014/04/23 PHP
PHP mkdir()无写权限的问题解决方法
2014/06/19 PHP
PHP实现数组的笛卡尔积运算示例
2017/12/15 PHP
django中的ajax组件教程详解
2018/10/18 PHP
PHP的mysqli_stat()函数讲解
2019/01/23 PHP
js 提交和设置表单的值
2008/12/19 Javascript
jquery下jstree简单应用 - v1.0
2011/04/14 Javascript
IE8对JS通过属性和数组遍历解析不一样的地方探讨
2013/05/06 Javascript
JavaScript实现GriwView单列全选(自写代码)
2013/05/13 Javascript
Jquery多选框互相内容交换的实例代码
2013/07/04 Javascript
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
js jquery ajax的几种用法总结(及优缺点介绍)
2014/01/28 Javascript
JavaScript版的TwoQueues缓存模型
2014/12/29 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
2016/04/29 Javascript
微信小程序 navigation API实例详解
2016/10/02 Javascript
基于Vuejs和Element的注册插件的编写方法
2017/07/03 Javascript
react-native 圆弧拖动进度条实现的示例代码
2018/04/12 Javascript
微信小程序通过保存图片分享到朋友圈功能
2018/05/24 Javascript
Vue.set() this.$set()引发的视图更新思考及注意事项
2018/08/30 Javascript
json 带斜杠时如何解析的实现
2019/08/12 Javascript
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
VUE+elementui组件在table-cell单元格中绘制微型echarts图
2020/04/20 Javascript
Python实现字典的key和values的交换
2015/08/04 Python
python实现爬虫统计学校BBS男女比例之数据处理(三)
2015/12/31 Python
python实现神经网络感知器算法
2017/12/20 Python
python按时间排序目录下的文件实现方法
2018/10/17 Python
在Keras中实现保存和加载权重及模型结构
2020/06/15 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
2020/07/09 Python
美国女孩服装购物网站:Justice
2017/03/04 全球购物
行政监察建议书
2014/05/19 职场文书
2014最新党员批评与自我批评材料
2014/09/24 职场文书
2014年销售内勤工作总结
2014/12/01 职场文书
2014社会治安综合治理工作总结
2014/12/04 职场文书
教代会开幕词
2015/01/28 职场文书
工地材料员岗位职责
2015/04/11 职场文书
2019年房屋委托租赁合同范本(通用版)!
2019/07/17 职场文书