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 相关文章推荐
学习从实践开始之jQuery插件开发 菜单插件开发
May 03 Javascript
各浏览器中querySelector和querySelectorAll的实现差异分析
May 23 Javascript
JavaScript函数的4种调用方法详解
Apr 22 Javascript
基于jQuery的Web上传插件Uploadify使用示例
May 19 Javascript
jQuery事件绑定用法详解
Sep 08 Javascript
浅谈JS函数定义方式的区别
Oct 30 Javascript
js实现可输入可选择的select下拉框
Dec 21 Javascript
jQuery封装animate.css的实例
Jan 04 jQuery
微信小程序云开发实现云数据库读写权限
May 17 Javascript
浅谈layui里的上传控件问题
Sep 26 Javascript
vue实现的多页面项目如何优化打包的步骤详解
Jul 19 Javascript
代码块高亮可复制显示js插件highlight.js+clipboard.js整合
Feb 15 Javascript
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
防止MySQL注入或HTML表单滥用的PHP程序
2009/01/21 PHP
写php分页时出现的Fatal error的解决方法
2011/04/18 PHP
Pain 全世界最小最简单的PHP模板引擎 (普通版)
2011/10/23 PHP
PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)
2012/02/05 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
JavaScript中的私有/静态属性介绍
2012/07/26 Javascript
javascript获取checkbox复选框获取选中的选项
2014/08/12 Javascript
jquery插件qrcode在线生成二维码
2015/04/26 Javascript
使用微信内置浏览器点击下拉框出现页面乱跳转现象(iphone),该怎么办
2016/01/04 Javascript
jQuery自定义滚动条完整实例
2016/01/08 Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
2016/04/18 Javascript
JavaScript的模块化开发框架Sea.js上手指南
2016/05/12 Javascript
JS用斜率判断鼠标进入DIV四个方向的方法
2016/11/07 Javascript
原生Javascript插件开发实践
2017/01/18 Javascript
layui文件上传实现代码
2017/05/20 Javascript
微信小程序 自定义Toast实例代码
2017/06/12 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
2018/01/15 Javascript
Python虚拟环境Virtualenv使用教程
2015/05/18 Python
Python Web编程之WSGI协议简介
2018/07/18 Python
pandas的连接函数concat()函数的具体使用方法
2019/07/09 Python
django 单表操作实例详解
2019/07/30 Python
springboot配置文件抽离 git管理统 配置中心详解
2019/09/02 Python
英语自我评价范文
2014/01/24 职场文书
面试后的英文感谢信
2014/02/01 职场文书
企业领导班子四风对照检查材料
2014/09/27 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
教育项目合作协议书格式
2014/10/17 职场文书
陕西导游词
2015/02/04 职场文书
培训班开班主持词
2015/07/02 职场文书
2016年暑期教师培训心得体会
2016/01/09 职场文书
2016年教育局“我们的节日——端午节”主题活动总结
2016/04/01 职场文书
商业计划书范文
2019/04/24 职场文书
Java移除无效括号的方法实现
2021/08/07 Java/Android
Python Matplotlib绘制两个Y轴图像
2022/04/13 Python