event对象详解

来源:互联网 发布:哈尔滨程序员工资待遇 编辑:程序博客网 时间:2024/04/27 21:34
Java字符串类(java.lang.String)Java中使用最多的类,也是最为特殊的一个类,很多时候,我们对它既熟悉又陌生。 一、从根本上认识java.lang.String类和String 首先,我建议先看看String类的源码实现,这是从本质上认识String类的根本出发点。从中可以看到: 1String类是final的,不可被继承。public final class String 2String类是的本质是字符数组char[], 并且其值不可改变。private final char value[]; 然后打开String类的API文档,可以发现: 3String类对象有个特殊的创建的方式,就是直接指定比如String x = "abc""abc"就表示一个字符串对象。而x"abc"对象的地址,也叫做"abc"对象的引用。 4String对象可以通过“+”串联。串联后会生成新的字符串。也可以通过concat()来串联,这个后面会讲述。 6Java运行时会维护一个String PoolString池),JavaDoc翻译很模糊字符串缓冲区String池用来存放运行时中产生的各种字符串,并且池中的字符串的内容不重复。而一般对象不存在这个缓冲池,并且创建的对象仅仅存在于方法的堆栈区。下面是个系统内存示意图: 5、创建字符串的方式很多,归纳起来有三类: 其一,使用new关键字创建字符串,比如String s1 = new String("abc"); 其二,直接指定。比如String s2 = "abc"; 其三,使用串联生成新的字符串。比如String s3 = "ab" + "c"; 二、String对象的创建 String对象的创建也很讲究,关键是要明白其原理。 原理1:当使用任何方式来创建一个字符串对象s时,Java运行时(运行中JVM)会拿着这个XString池中找是否存在内容相同的字符串对象,如果不存在,则在池中创建一个字符串s,否则,不在池中添加。 原理2Java中,只要使用new关键字来创建对象,则一定会(在堆区或栈区)创建一个新的对象。 原理3:使用直接指定或者使用纯字符串串联来创建String对象,则仅仅会检查维护String池中的字符串,池中没有就在池中创建一个,有则罢了!但绝不会在堆栈区再去创建该String对象。 原理4:使用包含变量的表达式来创建String对象,则不仅会检查维护String池,而且还会在堆栈区创建一个String对象。 另外,Stringintern()方法是一个本地方法,定义为public native String intern(); intern()方法的价值在于让开发者能将注意力集中到String池上。当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(该对象由 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并且返回此 String 对象的引用。 引自他处!
 
 
JavascriptEvent对象用来描述Javascript的事件,它主要作用于IE4NN4以后的各个浏览器版本中。Event代表事件状态,如事件发生的元素,键盘状态,鼠标位置和鼠标按钮状态。一旦事件发生,便会生成Event对象,如单击一个按钮,浏览器的内存中就产生相应的 event对象。
IE对事件的引用
IE4以上版本中,event对象作为window属性访问:window.event。其中引用的window部分是可选的.因此脚本就像全局引用一样来对待event对象:
eventpropertyName
event对象成员表:
下面的表格列出了 event 对象引出的成员。
对象dataTransfer 提供了对于预定义的剪贴板格式的访问,以便在拖曳操作中使用。 
集合bookmarks 返回捆绑到当前事件所影响的行上的 ActiveX® 数据对象(ADO)书签的集合。 boundElements 返回页面上所有绑定到给定数据集的所有元素的集合。 
属性Abstract 使用 event 对象获取高级流重定向器(ASX)文件中项目横幅的 Abstract 内容。 altKey 设置或获取 Alt 键的状态。 检索ALT键的当前状态可能的值 true为关闭,false为不关闭altLeft 设置或获取左 Alt 键的状态。 Banner 使用 event 对象获取高级流重定向器(ASX)文件中项目的 Banner 内容。 button 设置或获取用户所按的鼠标按钮。 可能的值:0 没按键1 按左键2 按右键3 按左右键4 按中间键5 按左键和中间键6 按右键和中间键7 按所有的键cancelBubble 设置或获取当前事件是否要在事件句柄中向上冒泡。 设置或检索当前事件是否将事件句柄起泡可能的值: false 启用起泡true 取消该事件起泡clientX 设置或获取鼠标指针位置相对于窗口客户区域的 x 坐标,其中客户区域不包括窗口自身的控件和滚动条。 属性为只读,没有默认值。clientY 设置或获取鼠标指针位置相对于窗口客户区域的 y 坐标,其中客户区域不包括窗口自身的控件和滚动条。 属性为只读,没有默认值。clientX,clientY不考虑文档滚动,如果要把窗体滚动计在内,加上document.body.scrollLeft,document.body.scrollTop即可contentOverflow 获取表明文档处理当前 LayoutRect 对象后是否包含附加的内容。 ctrlKey 设置或获取 Ctrl 键的状态。 ctrlKey 检索CTRL键的当前状态可能的值 true为关闭false为不关闭ctrlLeft 设置或获取左 Ctrl 键的状态。 dataFld 设置或获取 oncellchange 事件影响的数据列。 fromElement 设置或获取事件发生时激活或鼠标将要离开的对象。 keyCode 设置或获取与导致事件的按键关联的 Unicode 按键代码。 该属性与onkeydown onkeyup onkeypress一起使用如果没有引发事件的关键字,则该值为0String.fromCharCode()可将字符代码转换成字符串.MoreInfo 通过 event 对象获取高级流重定向器(ASX)文件中项目横幅的 MoreInfo 内容。 nextPage 获取打印模板中下页的位置。 offsetX 设置或获取鼠标指针位置相对于触发事件的对象的 x 坐标。 offsetY 设置或获取鼠标指针位置相对于触发事件的对象的 y 坐标。 propertyName 设置或获取对象上发生更改的属性名称。 qualifier 设置或获取由数据源对象提供的数据成员的名称。 reason 设置或获取数据源对象的数据传输结果。 可能的值:0 数据传输成功1 数据传输失败2 数据传输错误recordset 从数据源对象设置或获取对默认数据集的引用。 该特性为只读repeat 获取 onkeydown 事件是否正在重复。 该属性只有在onkeydown事件重复时才返回truereturnValue 设置或获取事件的返回值。 可能的值:true 事件中的值被返回false 源对象上事件的默认操作被取消saveType  oncontentsave 触发时获取剪贴板类型。 screenX 设置或获取获取鼠标指针位置相对于用户屏幕的 x 坐标。 screenY 设置或获取鼠标指针位置相对于用户屏幕的 y 坐标。 (即鼠标指针相对于用户显示器的左上角的XY坐标的值)shiftKey 设置或获取 Shift 键的状态。 可能的值 true为关闭,false为不关闭shiftLeft 设置或获取左 Shift 键的状态。 srcElement 设置或获取触发事件的对象。 (发生事件的文档元素)srcFilter 设置或获取触发 onfilterchange 事件的滤镜对象。 srcUrn 获取触发事件的行为的统一资源名称(URN) 除非下面两个条件都为真,否则该特性被设置为null1.行为被附加到触发事件的要素上2.在前面的项目符号中定义的行为己指定了一个URN标识符和己触发的事件toElement 设置或获取用户要将鼠标指针移动指向的对象的引用。 type  event 对象中获取事件名称。 click,mouseoverwheelDelta 设置或获取滚轮按钮滚动的距离和方向。 x 设置或获取鼠标指针位置相对于父文档的 x 像素坐标。 y 设置或获取鼠标指针位置相对于父文档的 y 像素坐标。 
注释
event 对象仅在事件中可用──这意味着,你可以在事件句柄中使用该对象,但不能在其它代码中使用。
尽管所有事件属性都可通过所有的 event 对象访问,但是在某些事件中某些属性可能无意义。例如,fromElement  toElement 属性仅当处理 onmouseover  onmouseout 事件时有意义。
 Microsoft Visual Basic® 脚本版本(VBScript)中,你必须通过 window 对象访问 event 对象。
此对象在 Microsoft® Internet Explorer 4.0 的脚本中可用。
示例
下面的例子使用了 event 对象来决定用户单击的位置是否在链接上,并且避免在 SHIFT 键按下时导航到链接。
<HTML><HEAD><TITLE>取消链接</TITLE><SCRIPT LANGUAGE="JScript">function cancelLink() {if (window.event.srcElement.tagName == "A" && window.event.shiftKey) window.event.returnValue = false;}</SCRIPT><BODY onclick="cancelLink()">
 
 
 
 
 
原创粉丝点击