这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
下面小编就为大家带来一篇 js 事件源 window.event.srcElement 兼容性写法 (详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
如下所示:
- <html>
- <body>
- <p>
- 一个好处就是 我想让body(或其他元素内)的某些对象响应事件 就不用挨个儿去写 只要在外层上写一个 然后检查event.srcElement.tagName或其他属性是不是你想要的来决定是否响应事件就可以了.不过好像event.srcElement在ff里不起作用
- </p>
- <p>
- 比如
- </p>
- <p>
- <input value="input">
- <br>
- <span>
- span
- </span>
- </p>
- <div>
- div
- </div>
- <p>
- event对象指当前触发的事件对象, window.event.srcElement是指触发事件的对象。比如你设定document.onclick
- = myfunc;这时所有页面点击的事件都交给myfunc处理,在myfunc函数里可以写vSrc = window.event.srcElement,
- 知道用户是点击了什么地方,做相应处理。 你找个HTML文件,在其中加上这么一段:
- </p>
- <p>
- <textarea rows="10" cols="90">
- <script languange="javascript">
- document.onclick = myfunc;
- </script>
- </textarea>
- <script languange="javascript">
- document.onclick = myfunc;
- function myfunc() {
- var evt = getEvent();
- var element = evt.srcElement || evt.target;
- alert(element.tagName)
- }
- //在 ie中处理事件直接使用window.event对象即可,但在firefox中,是没有 window.event对象的,函数需要使用事件的时候,
- //需要在事件发生时把事件作为参数传递给函数,不象在ie中,事件对象是全局的,随处都可以访 问.下面这个getEvent()函数可以兼容firefox和ie,
- //只需要在访问事件对象的函数的开始调用getEvent()即可,不用再把事件作为 参数传递.以下代码已经实验通过!
- function getEvent() {
- if (document.all) {
- return window.event; //如果是ie
- }
- func = getEvent.caller;
- while (func != null) {
- var arg0 = func.arguments[0];
- if (arg0) {
- if ((arg0.constructor == Event || arg0.constructor == MouseEvent) || (typeof(arg0) == "object" && arg0.preventDefault && arg0.stopPropagation)) {
- return arg0;
- }
- }
- func = func.caller;
- }
- return null;
- }
- </script>
- </p>
- <p>
- 试试就知道了。
- <a href=#>
- void(0)是一个不做任何事的函数。
- </a>
- </p>
- </body>
- </html>
以上这篇 js 事件源 window.event.srcElement 兼容性写法 (详解) 就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持 phperz。
来源: http://www.phperz.com/article/17/0522/330181.html