bindsang

工作五年,长期从事于asp.net方面的编程,业余爱好VC编程,温和、谦虚、自律、自信、善于与人交往沟通
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

发现一个FireFox的问题

Posted on 2008-08-04 17:35    阅读(432)  评论(0编辑  收藏  举报

    最近做网页的时候要求一个输入框只能输入数字,发现在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>

 

类似的还有剪贴板操作,这个到是因为安全的原因,一开始就没有打算支持,但是也提供了paste事件,供我们在FF的js里完全阻止粘贴操作,但是拖拽文本的话,没有这两个事件的支持的话,怎么做到在FF里面阻止拖拽操作呢