Javascript 模拟点击事件(点击链接与html点击) 兼容IE/Firefox_javascript技巧

一把情况下模拟点击一般两个方面,模拟点击超级连接事件
firefox的兼容的函数为
对HTMLAnchorElement 加入onclick事件

复制代码 代码如下:

try {
// create a element so that HTMLAnchorElement is accessible
document.createElement('a');
HTMLElement.prototype.click = function () {
if (typeof this.onclick == 'function') {
if (this.onclick({type: 'click'}) && this.href)
window.open(this.href, this.target? this.target : '_self');
}
else if (this.href)
window.open(this.href, this.target? this.target : '_self');
};
}
catch (e) {
// alert('click method for HTMLAnchorElement couldn\'t be added');
}

下面是具体的应用

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

如果是普通的html添加点击
这一段使得FireFox的HTMLElement具有click方法(add click method to HTMLElement in Mozilla)

复制代码 代码如下:

try {
// create span element so that HTMLElement is accessible
document.createElement('span');
HTMLElement.prototype.click = function () {
if (typeof this.onclick == 'function')
this.onclick({type: 'click'});
};
}
catch (e) {
// alert('click method for HTMLElement couldn\'t be added');
}

下面是网友的其它相关文章也可以参考下。
最近做东西发现用户在网页输入框里面按回车的行为是不固定的。。。
特别是在网页有多个表单的时候
于是搜了一把找了一个模拟点击的js,经测试能在firefox和ie上运行

复制代码 代码如下:

function doClick(linkId, e){
if(e.keyCode != 13){
return;
}
var fireOnThis = document.getElementById(linkId)
if (document.createEvent)
{
var evObj = document.createEvent('MouseEvents')
evObj.initEvent( 'click', true, false )
fireOnThis.dispatchEvent(evObj)
}
else if (document.createEventObject)
{
fireOnThis.fireEvent('onclick')
}
}

其中e是event,内置对象,linkId是模拟被点击的对象id
比如<INPUT id="test" onkeypress="doClick("buttonId", event)">
这样的话就能让用户按回车来提交表单了~
opera可以再改一下

复制代码 代码如下:

<img id="a" src="/a.jpg" onclick="alert('a');"/><div onclick="clickObj('a')">click me</div>
<script language="javascript">
<!--
function clickObj(o){
var o = document.getElementById(o);
if( document.all && typeof( document.all ) == "object" ) //IE
{
o.fireEvent("onclick");
}
else
{
var e = document.createEvent('MouseEvent');
e.initEvent('click',false,false);
o.dispatchEvent(e);
}
}
//-->
</script>

时间: 2024-08-01 21:28:33

Javascript 模拟点击事件(点击链接与html点击) 兼容IE/Firefox_javascript技巧的相关文章

JavaScript 模拟用户单击事件_javascript技巧

一开始,我想到了用jQuery的click()事件来触发超链接的单击事件(与trigger("click")一样的效果).结果发现不如人意. 实例如下: 效果图 IE: FireFox:   复制代码 代码如下: <h3>请单击"Click Me".测试提交按钮与超链接是否也被单击了.</h3>     <button id="btn">Click Me</button>     <form

Javascript事件热键兼容ie|firefox_javascript技巧

复制代码 代码如下: <textarea onkeydown="keyHanlder(event)"> </textarea> <script> function keyHanlder(e){ if(e.ctrlKey&&e.keyCode==13){ alert('"Ctrl+Enter"'); if(e.preventDefault)e.preventDefault(); else e.returnValue=

JavaScript中点击事件的写法_javascript技巧

<button id="btn">click</button> var btn=document.getElementById('btn'); 第一种: btn.onclick=function(){ alert('hello world'); } 消除事件:btn.onclick=null;//就不会弹出框了 第二种: btn.addEventListener('click',function(){alert('hello world')},false); b

jQuery绑定和解绑点击事件及重复绑定解决办法

先简单说下jQuery绑定和解绑点击事件的方法,直接上代码:  代码如下 复制代码 $("#element").click(function(){}); //绑定点击事件函数 $("#element").unbind();        //解绑点击事件 $("#element").click(function(){});  //绑定其它函数 即,要对一个绑定过点击事件的元素绑定其它函数,需先对其解绑. 上面的代码看起来好简单,但是实际应用中却要

Android中EditText的drawableRight属性设置点击事件_Android

这个方法是通用的,不仅仅适用于EditText,也适用于TextView.AutoCompleteTextView等控件. Google官方API并没有给出一个直接的方法用来设置右边图片的点击事件,所以这里我们需要通过点击位置来判断点击事件,效果如图: 布局文件: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.a

jQuery中animate动画第二次点击事件没反应_jquery

用animate做点击翻页动画时发现第二次点击事件动画没反应,而第一次点击有动画效果,代码如下: 复制代码 代码如下: $(".page").stop().animate({top:"-300px"}, 800, 'easeInOutExpo'); 第二次点击事件动画没反应的原因:top是page元素顶部相与其父元素顶部的距离,第一次点击后,page元素顶部已经移动到距其父元素顶部-300px的位置,第二次点击时的并不是page在移动后的位置继续t移动-300px,

android-我的安卓按钮点击事件无法运行,求解答

问题描述 我的安卓按钮点击事件无法运行,求解答 一点击按钮就停止运行,但是编译单个java文件就没问题,求解答,求大神们解答,谢谢啦 解决方案 没图没代码没错误日志没法脑补 解决方案二: 你把代码和log贴出来呀 解决方案三: 解决方案四: 没有button 没有监听器,当然不行呀 解决方案五: 随便写了下,你首先要找到button,然后要有个监听来监听button的点击事件

详解iOS中Button按钮的状态和点击事件_IOS

一.按钮的状态 1.UIControlStateNormal     1> 除开UIControlStateHighlighted.UIControlStateDisabled.UIControlStateSelected以外的其他情况,都是normal状态     2> 这种状态下的按钮[可以]接收点击事件 2.UIControlStateHighlighted     1> [当按住按钮不松开]或者[highlighted = YES]时就能达到这种状态     2> 这种状态

布局-listview中addHeaderView 点击事件

问题描述 listview中addHeaderView 点击事件 listview中addHeaderView 中头布局的多个点击响应事件怎么设置 解决方案 headView和footerView都可以响应onItemClick方法,headView的position为0, footerView的position最大. 不过可以给headView和footerView设置OnClickListener来覆盖OnItemClick,这样,你点击headview或者footerView将触发OnCl