最近做网页的时候要求一个输入框只能输入数字,发现在ff的input上挂的dragenter和dragover事件不工作,一开始以为是自己的代码写的不对,DEBUG了半天,发现这段代码在IE下是好好的,可是在FF下就是不工作.GOOGLE了一下发现网上遇到这个问题的不止我一个,http://forums.mozillazine.org/viewtopic.php?p=1252112,看了一下文章发表的时间是2005年,那个时候应该是FF2.0左右吧,现在都3.0了还是会有这个问题,貌似FF开发团队不认为这是个BUG,本来就不打算支持
1
<
form
>
2 < input id = " aaa " type = " text " value = " 12345 " / > 111111111111111< / form >
3
4 < script language = " JavaScript1.2 " type = " text/javascript " >
5 function resetField(id)
6 {
7 field = document.getElementById(id);
8 field.value = "" ;
9 // if you comment out the above line then ff will not crash.
10 x = 1 ;
11 }
12
13 field = document.getElementById( " aaa " );
14 if ( typeof field.addEventListener == " function " )
15 {
16 field.addEventListener( " dragover " , function (){resetField( ' aaa ' );}, true );
17 alert( " added DOM event " );
18 }
19
20 if ( typeof field.ondragenter != " undefined " )
21 {
22 field.ondragenter = function (){resetField( ' aaa ' )};
23 alert( " added IE event " );
24 }
25
26 -->
27 < / script>
2 < input id = " aaa " type = " text " value = " 12345 " / > 111111111111111< / form >
3
4 < script language = " JavaScript1.2 " type = " text/javascript " >
5 function resetField(id)
6 {
7 field = document.getElementById(id);
8 field.value = "" ;
9 // if you comment out the above line then ff will not crash.
10 x = 1 ;
11 }
12
13 field = document.getElementById( " aaa " );
14 if ( typeof field.addEventListener == " function " )
15 {
16 field.addEventListener( " dragover " , function (){resetField( ' aaa ' );}, true );
17 alert( " added DOM event " );
18 }
19
20 if ( typeof field.ondragenter != " undefined " )
21 {
22 field.ondragenter = function (){resetField( ' aaa ' )};
23 alert( " added IE event " );
24 }
25
26 -->
27 < / script>
类似的还有剪贴板操作,这个到是因为安全的原因,一开始就没有打算支持,但是也提供了paste事件,供我们在FF的js里完全阻止粘贴操作,但是拖拽文本的话,没有这两个事件的支持的话,怎么做到在FF里面阻止拖拽操作呢