IE中的fireEvent和webkit中的dispatchEvent

拿浏览器的click事件来说:

在IE浏览器中如果一个element没有注册click事件,那么直接调用的话会出现异常!当然如果你注册了没有什么可说的。

那么如果使用fireEvent来处理,click事件注册了则直接触发注册的事件;即使没注册事件不会报错,如同用户点击了鼠标的左键的真实行为。

那么在webkit内核的浏览器中,我们需要使用dispatchEvent来替代fireEvent来触发事件。兼容代码如下:

  var t = document.getElementById(‘button‘)
            if (document.all) {
                t.fireEvent("onclick");
            }
            else {
                var evt = document.createEvent(‘HTMLEvents‘);
                evt.initEvent(‘click‘, true, true);
                t.dispatchEvent(evt);
            }
时间: 2024-10-18 17:11:05

IE中的fireEvent和webkit中的dispatchEvent的相关文章

web worker在WebKit中的实现机制

web worker 是运行在后台的 JavaScript,独立于其他脚本,不会影响页面的性能.这是HTML5的一个标准:实现上讲,浏览器为wokrer启动了新的线程,从而实现了异步操作的功能; 下面是woker的一个简单例子,在html页面中,以worker.js为源文件,创建了名为"worker"的Worker对象,通过worker.postMessage()接口向worker线程发送消息: worker线程将JSON格式化传递的两个数据相加后,再通过postMessage()接口

webkit中DOM 事件有多少

webkit中DOM 事件有多少 目前客户端javascript中大量的工作就是处理浏览器,用户触发的各种事件,下面是webkit中这些事件的集合,有一些时常见的,标准规定的,而另一些则是webkit自己扩展,自定义的,比如beforeloadEvent,这个事件可以说是专门为广告过滤做准备的,像copy,cut,paste事件,可以直观看出其用意,但是这些却都非w3c所规定的标准事件,也不一定为其他浏览器支持(至少ie不支持),但是却非常有用 后续会不断介绍,这些事件, abort befor

JavaScript事件在WebKit中的处理流程研究

本文主要探讨了JavaScript事件在WebKit中的注册和触发机制. JS事件有两种注册方式: 通过DOM节点的属性添加或者通过node.addEventListener()函数注册: 通过DOM节点的属性添加如下所示,节点的属性采用on后面紧接event name的形式,比如onclick, onload; <html> <head> <script type="text/javascript"> function listener(e){ a

WebKit 中异步加载脚本(Running scripts in WebKit)- 大大提升界面呈现速度

WebKit 中异步加载脚本(Running scripts in WebKit)- 大大提升界面呈现速度 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. Running scripts in

将Excel导入DataGridView 中的"select * from [Sheet1$]"中[ ]里面表单名的动态获取

Sheet1$是Excel默认的第一个表名,如果改动:select * from [Sheet1$]"将查询失败,因此应根据选择自动获取excel表名: 1 OpenFileDialog ofd = new OpenFileDialog(); //选择文件路径 2 ofd.Title = "Excel文件"; 3 ofd.FileName = ""; 4 ofd.Filter = "Excel文件(*.xls)| *.xls"; 5 s

MATLAB检查指定路径中的子文件夹中的文件名中是否带有空格

测试文件夹为: clear;close all;clc; %% %程序实现的功能 %检查指定路径中的子文件夹中的文件名中是否带有空格,并去掉文件名中的空格 %% %程序中用到的之前不清楚的函数如下 %1)strfind(a,b):即找a中是否有b,如果a中有b,则输出b的位置序号.没有输出空数组 %2)isempty(a):判断数组是否为空 %3)strrep(a,b,c):就是把a中所有出现的b换为c %4)movefile(a,b):a移动为b,如C:\test1.jpg移动为C\test2

在JS中,将text框中数据格式化,根据不同的小数位数,格式化成对应的XXX,XXX,XXX.XX(2位小数) 或者XXX,XXX,XXX(0位小数)

//在JS中,将text框中数据格式化,根据不同的小数位数,格式化成对应的XXX,XXX,XXX.XX(2位小数) 或者XXX,XXX,XXX(0位小数) function formatNum(num, n) {//参数说明:num 要格式化的数字 n 保留小数位 num = String(num.toFixed(n)); var re = /(-?\d+)(\d{3})/; while (re.test(num)) num = num.replace(re, "$1,$2") ret

JSP隐含变量和Spring中Model在EL表达式中的读取顺序

偶然中存在着必然,必然中存在着偶然 偶然出现的bug,必然存是由代码的不合理甚至错误的 代码逻辑越长,越复杂,就越容易出现bug 之前项目里几次偶然出现了一个bug,简单的描述就是第一次新增了之后进行一个B操作,之后在新增一次,页面中的一个隐含变量会"记住"这个新增之后的id,因为这个需要连续两次新增且在第一次新增之后进行B操作之后才会出现,所以很长时间里面都是偶然出现. 定位问题的过程就是进行很多次的操作,然后逐个排除.尝试自己的猜测,再次进行代码级的排除.定位这种问题一定要有一定的

php中的curl】php中curl的详细解说

本文我来给大家详细介绍下cURL的简单的使用方法,下文我将会给大家详细介绍cURL的高级应用, cURL可以使用URL的语法模拟浏览器来传输数据, FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP等协议都可以很好的支持,包括一些: HTTPS认证,HTTP POST方法,HTTP PUT方法,FTP上传,keyberos认证,HTTP上传,代理服务器,cookies,用户名/密码认证, 下载文件断点续传,上传文件断点续传,htt