最近做网页的时候要求一个输入框只能输入数字,发现在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里面阻止拖拽操作呢
工作五年,长期从事于asp.net方面的编程,业余爱好VC编程,温和、谦虚、自律、自信、善于与人交往沟通