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 相关文章推荐
二级域名或跨域共享Cookies的实现方法
Aug 07 Javascript
javascript两种function的定义介绍及区别说明
May 02 Javascript
Javascript快速排序算法详解
Dec 03 Javascript
使用jquery菜单插件HoverTree仿京东无限级菜单
Dec 18 Javascript
鼠标事件的screenY,pageY,clientY,layerY,offsetY属性详解
Mar 12 Javascript
BootStrap智能表单实战系列(六)表单编辑页面的数据绑定
Jun 13 Javascript
jquery实用技巧之输入框提示语句
Jul 28 Javascript
Angular和百度地图的结合实例代码
Oct 19 Javascript
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
Mar 15 Javascript
vue实现的下拉框功能示例
Jan 29 Javascript
深入分析jQuery.one() 函数
Jun 03 jQuery
详解JavaScript中的数据类型,以及检测数据类型的方法
Sep 17 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
PHP常用代码
2006/11/23 PHP
PHP与MySQL开发中页面出现乱码的一种解决方法
2007/07/29 PHP
PHP 设计模式之观察者模式介绍
2012/02/22 PHP
ExtJS下grid的一些属性说明
2009/12/13 Javascript
Jquery实现仿新浪微博获取文本框能输入的字数代码
2013/02/22 Javascript
jQuery实现表单提交时判断的方法
2014/12/13 Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
2014/12/17 Javascript
DOM基础教程之使用DOM + Css
2015/01/20 Javascript
js实现接收表单的值并将值拼在表单action后面的方法
2015/11/23 Javascript
jquery中ajax跨域方法实例分析
2015/12/18 Javascript
详解微信小程序 通过控制CSS实现view隐藏与显示
2017/05/24 Javascript
Vue2.0 实现移动端图片上传功能
2018/05/30 Javascript
JavaScript中关于base64的一些事
2019/05/06 Javascript
解决Vue中使用keepAlive不缓存问题
2020/08/04 Javascript
零基础写python爬虫之爬虫的定义及URL构成
2014/11/04 Python
python标准算法实现数组全排列的方法
2015/03/17 Python
python实现微信接口(itchat)详细介绍
2017/10/23 Python
详解Python Qt的窗体开发的基本操作
2019/07/14 Python
Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统
2019/09/05 Python
pycharm通过anaconda安装pyqt5的教程
2020/03/24 Python
Django Channel实时推送与聊天的示例代码
2020/04/30 Python
39美元购买一副眼镜或太阳镜:39DollarGlasses.com
2018/06/17 全球购物
PUMA澳大利亚官方网站:德国运动品牌
2018/10/19 全球购物
extern在函数声明中是什么意思
2014/01/19 面试题
电子商务专业推荐信范文
2013/12/02 职场文书
寒假思想汇报
2014/01/10 职场文书
迎八一活动主题
2014/01/31 职场文书
2014年乡镇党建工作总结
2014/11/11 职场文书
社区服务活动报告
2015/02/05 职场文书
幼师小班个人总结
2015/02/12 职场文书
行政经理岗位职责
2015/04/15 职场文书
小学校本教研总结
2015/08/13 职场文书
保姆聘用合同
2015/09/21 职场文书
小学英语教学反思范文
2016/02/15 职场文书
集英社今正式宣布 成立游戏公司“集英社Games”
2022/03/31 其他游戏
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python