js下的table.insertRow ie and firefox的区别

table.insertRow()在IE下没问题 但在firefox下就得改为table.insertRow(-1)
同样其相应的insertCell()也要改为insertCell(-1)

var newTh = table.insertRow(-1);
                
                newTh.style.backgroundColor="#C8ECEC";
                newTh.align="center";
                
                //表头TD

                var newTh1 = newTh.insertCell(-1);
                var newTh2 = newTh.insertCell(-1);
                var newTh3 = newTh.insertCell(-1);
                var newTh4 = newTh.insertCell(-1);
在firefox下必须要为insertrow 和insertcell加上参数,-1的意思是插到表格最后一行。

判断是ie还是其他浏览器的函数

if(navigator.appName == "Microsoft Internet Explorer"){

//ie browser

}else{

//anthor browser

}

firefox 下没有keyup ,只有keydown和keypress动作,这个地方要注意。

我的firefox是3.6.3能实现keyup动作。但是ff和ie还是有些不同的地方。

获得一个id的值的方法有几种:1。document.getElementById("table").value;2.$("table").value

3.$("table").getAttribute("value");这三种,当你要获得字符串长度时,第三种 $("table").getAttribute("value").length在ff中不能正常执行。而第二种 $("table").value.toString().length能正常执行。

还有那个keypress动作和keyup的区别。

有这样一个例子,我要控制文本框输入长度到5个字符时就自动取出文本框的值并把文本框点亮。一开始我以为keyup在ff不能用,于是就用keypress代替。区别出来了。我在keyup里判断当$("add_input").value.toString().length==5时字段保存。但是在keypress里,当你输入第6个字符时才保存,虽然保存的也是前5个字符。但是你只有输入第6个字符才能触发keypress里的函数。如果是扫描机时,输入商品id,不会出现第6个字符,就麻烦了。

、、、、、、、、、、、、、、、、、、、、、、、

下面是转载的一段话:

最近在做一个程序,需要实现窗口下的F5 刷新功能。 

研究了一下KeyDown,KeyPress 和KeyUp ,发现之间还是有点学问的。 

让我们带着如下问题来说明,如果你看到这些问题你都知道,那么这篇文章你就当复习吧:) 

1.这三个事件的顺序是怎么样的? 

2.KeyDown 触发后,KeyUp是不是一定触发? 

3.三个事件的定义 

4.KeyDown、KeyUp 和KeyPress 之间的区别 

5.如何区分是否按的是小键盘? 

6.PrScrn按键三个事件能够捕获吗? 

7.{菜单键}和{开始键}KeyPress能够捕获吗? 

8.如何捕获系统的组合键? 

9.通过什么方式捕获PrScrn按键事件? 

(一)键事件按下列顺序发生: 

KeyDown 

KeyPress 

KeyUp 

(二)KeyDown触发后,不一定触发KeyUp,当KeyDown 按下后,拖动鼠标,那么将不会触发KeyUp事件。 

(三)定义 

KeyDown:在控件有焦点的情况下按下键时发生。 

KeyPress:在控件有焦点的情况下按下键时发生。(下面会说和KeyDown 的区别) 

KeyUp:在控件有焦点的情况下释放键时发生。 

(四)KeyPress 和KeyDown 、KeyPress之间的区别 

           1.KeyPress主要用来捕获数字(注意:包括Shift+数字的符号)、字母(注意:包括大小写)、小键盘等除了F1-12、SHIFT、Alt、 Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜单键}、{开始键}和方向键外的ANSI字符 
             KeyDown 和KeyUp 通常可以捕获键盘除了PrScrn所有按键(这里不讨论特殊键盘的特殊键) 

            2.KeyPress 只能捕获单个字符 

                KeyDown 和KeyUp 可以捕获组合键。 

           3.KeyPress 可以捕获单个字符的大小写 

           4.KeyDown和KeyUp 对于单个字符捕获的KeyValue 都是一个值,也就是不能判断单个字符的大小写。 

           5.KeyPress 不区分小键盘和主键盘的数字字符。 

                KeyDown 和KeyUp 区分小键盘和主键盘的数字字符。 

           6.其中PrScrn 按键KeyPress、KeyDown和KeyUp 都不能捕获。 

(五)系统组合键的判定 

在使用键盘的时候,通常会使用到CTRL+SHIFT+ALT 类似的组合键功能。对于此,我们如何来判定? 

     通过KeyUp 事件能够来处理(这里说明一下为什么不用KeyDown,因为在判定KeyDown的时候,CTRL、SHIFT和ALT 属于一直按下状态,然后再加另外一个键是不能准确捕获组合键,所以使用KeyDown 是不能准确判断出的,要通过KeyUp 事件来判定 ) 

   (六)捕获PrScrn按键事件 

通过一种钩子的方式可以判定PrScrn 按键事件,钩子可以获取任何键盘事件。

原文地址:http://hi.baidu.com/r61ethinkpad/blog/item/a377f9acbd2b12c07dd92a2c.html

posted @ 2011-12-28 17:11  百年俊少  阅读(919)  评论(0编辑  收藏  举报