我的textarea在focus的时候怎样隐藏光标,或是不让光标一闪一闪的

解决方案 »

  1.   

    隐藏的前提是不改变textarea的focus状态
      

  2.   

    呵呵。。本来是我把textarea的高和宽度设为0了,但是获得焦点后还能见到光标一闪一闪的。。因为我要用这个textarea来监听键盘事件,,就必须获得焦点后才能监听。呵呵。。如果没办法,解决了我另外一个问题也给加分,,,怎么屏蔽alt+enter,在IE7里面alt+enter是全屏浏览器,现在我要在js中屏蔽这个功能,,大家看有不有可能。
    代码写出来了,,不过没效果,,是不是js对application的事件拦截无效啊
     <script>document.onkeydown = keydowncheck;function keydowncheck(){
    var bAltKey = (event.altKey)? true : false;
    var intKeyCode = event.keyCode;
    //alert(intKeyCode ); 
    if (bAltKey && intKeyCode==13) {
    //alert('Alt Enter has entered :' );
      event.keyCode = 0;
      event.returnValue=false; 
      event.cancelBubble = true;
     return true;
    }return false;}</script>  
      

  3.   

    如果不改变其focus状态只是为了输入的话可以采取这样一个思路:1.写2个textarea , 重叠起来 , 
    2.把上面一个textarea的透明度设为0 , 监听其键盘事件 , 将内容复制到下面一个textarea
    3.监听下面一个textarea的focus事件,把焦点转到上面那个textarea(这个是为了防止用tab获得焦点)没试过这样行不行,一个想法而已,呵呵
      

  4.   


    只是为了这样的话你把字体设为0就可以了,不过chrome默认有一个最小字体限制
      

  5.   

    textarea要监听键盘事件就必须获得焦点才能监听,就算设成透明的,也是一样要获得焦点才能监听。。
      

  6.   

    问题就是在这了,,就算我把上面一个textarea设成透明的,,只要一获得焦点,,光标还是会在它上面闪闪的。
      

  7.   

    字体那个跟浏览器有关,除了chrome应该是可以的,至少我刚才试的没问题,除非你没设置对设成透明肯定也是可以的,虽然透明了,但一样是能获得焦点的,上面的透明textarea获得焦点的时候真的会有光标在闪么?自己动手试试再说
      

  8.   

    发一测试代码,,前提是不改变left和top
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <style>
    .input-edit {
    left:50px;
    top:50px;
    width:0px;
    height:0px;
    position: absolute; 
    background-color:#FFFFFF;
    border-color:#FFFFFF #CCCCCC #CCCCCC #FFFFFF;
    border-style:solid;
    border-width:0 0 0 0;
    color:#000000;
    font-family:Arial;
    font-size:0pt;
    font-style:normal;
    font-weight:normal;
    overflow:hidden;
    text-align:left;
    text-decoration:none;
    vertical-align:middle;
    z-index:111;
    }
    </style>
    <script>
    window.onload=function (){
    document.getElementById("ta").focus();

    }</script>
    </head><body>
    <textarea id="ta" class="input-edit"> </textarea>
    </body>
    </html>
      

  9.   

    设成透明的只要在css加入下面一句就可以了
    filter:Alpha(Opacity=0);
      

  10.   

    我认错 我没有测IE 
    用这个吧
    margin:-9999px;
      

  11.   

    在ff里面只要width和height设成了0就不会显示了的,,但是在ie里面却不行。。设margin 到不可见,的效果跟我设left的效果是一样的。还是不能解决我的问题。谢谢
      

  12.   

    呵呵 现在很少开IE 主要玩ff chrome safari opera
    一定要用textarea么?用他来做什么呢?监听键盘事件的话其他随便用什么都行嘛
      

  13.   

    我们在做一个excel所以要时刻监听它的输入和事件,,很多方案都试过了,,用textarea是目前来说最可行的唉,,这个浏览器的差异问题快把人给折腾死了,,尽管我现在还只是用到ie和ff。。就算是ie6和ie7就有很大的差别
      

  14.   

    问题解决!!  
    document.getElementById("ta").blur();
    document.getElementById("ta").select();不用获得焦点的时候去监听,改变为选择状态去监听事件,选取状态是没有光标闪的。。