那是因为IE和FF对对象的操作有区别
你查看下手册就一切都清楚了!

解决方案 »

  1.   

    知道window.event这个标志是代表什么的嘛?事件的对象,在IE中是window.event.srcElement,在Firefox中是event.target,而在Opera中则两者都支持呵呵,我就说这么一点,其他的,你自己查手册你就知道了
      

  2.   

    知道window.event这个标志是代表什么的嘛?事件的对象,在IE中是window.event.srcElement,在Firefox中是event.target,而在Opera中则两者都支持呵呵,我就说这么一点,其他的,你自己查手册你就知道了
      

  3.   

    我把var evt=window.event¦ ¦event 修改成 event.target 删除没有问题了 但是添加又添加不了了。这是为什么呢?
      

  4.   


    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>JavaScriptLab</title>
    <style type="text/css">
    <!--
    body{margin-left:0px;margin-top:10px;margin-right:0px;margin-bottom:10px;}
    #div{margin-left:auto;margin-right:auto;width:76%;}
    #pbody{border:#88cee9 1px solid;padding:15px;}
    input{width:60px;border:#000000 1px solid;}
    -->
    </style>
    </head>
    <body>
    <div id="div">
    <div id="pbody">
    <script type="text/javascript">
    function check(){
    var arr = new Array();
    arr[0]=document.getElementById("tex1").value;
    arr[1]=document.getElementById("tex2").value;
    arr[2]=document.getElementById("tex3").value;
    arr[3]=document.getElementById("tex4").value;
    arr[4]=document.getElementById("tex5").value;
    arr[5]=document.getElementById("tex6").value;
    arr[6]=document.getElementById("tex7").value;
    var str="";
    var k=0;
    for(var i=0;i<arr.length;i++){
    if(arr[i].length>6)
    str=arr[i];
    if(k==0)
    k=i;
    }
    str=str.replace(/ /g,"-");
    str=str.replace(/[\s-,,]/g,"-");
    var tex=str.split("-");
    for(var i=0;i<tex.length;i++){
    if(i<arr.length){
    var num=k+i;
    document.getElementById("tex"+num).value=tex[i];
    }
    }
    }
    </script>
    <div id="content">
    <input type="text" id="tex1" name="tex1" onchange="return check()" />
    -
    <input type="text" id="tex2" name="tex2" onchange="return check()" />
    -
    <input type="text" id="tex3" name="tex3" onchange="return check()" />
    -
    <input type="text" id="tex4" name="tex4" onchange="return check()" />
    -
    <input type="text" id="tex5" name="tex5" onchange="return check()" />
    -
    <input type="text" id="tex6" name="tex6" onchange="return check()" />
    -
    <input type="text" id="tex7" name="tex7" onchange="return check()" />
    </div>
    </div>
    </div>
    </body>
    </html>大概就这样了,代码你自己再优化一下
      

  5.   


    //JS代码改一下,上面的有点小问题
    function check(){
    var arr = new Array();
    arr[0]=document.getElementById("tex1").value;
    arr[1]=document.getElementById("tex2").value;
    arr[2]=document.getElementById("tex3").value;
    arr[3]=document.getElementById("tex4").value;
    arr[4]=document.getElementById("tex5").value;
    arr[5]=document.getElementById("tex6").value;
    arr[6]=document.getElementById("tex7").value;
    var str="";
    var k=0;
    for(var i=0;i<arr.length;i++){
    if(arr[i].length>6){
    str=arr[i];
    if(k==0)
    k=i+1;
    }
    }
    if(str.length>6){
    str=str.replace(/ /g,"-");
    str=str.replace(/[\s-,,]/g,"-");
    var tex=str.split("-");
    for(var i=0;i<tex.length;i++){
    if(i<arr.length){
    var num=k+i;
    document.getElementById("tex"+num).value=tex[i];
    }
    }
    }
    }
      

  6.   


    //再改
    function check(){
    var arr = new Array();
    arr[0]=document.getElementById("tex1").value;
    arr[1]=document.getElementById("tex2").value;
    arr[2]=document.getElementById("tex3").value;
    arr[3]=document.getElementById("tex4").value;
    arr[4]=document.getElementById("tex5").value;
    arr[5]=document.getElementById("tex6").value;
    arr[6]=document.getElementById("tex7").value;
    var str="";
    var k=0;
    for(var i=0;i<arr.length;i++){
    if(arr[i].length>6){
    str=arr[i];
    if(k==0)
    k=i+1;
    }
    }
    if(str.length>6){
    str=str.replace(/ /g,"-");
    str=str.replace(/[\s-,,]/g,"-");
    var tex=str.split("-");
    for(var i=0;i<tex.length;i++){
    var num=k+i;
    if(num<=arr.length)
    document.getElementById("tex"+num).value=tex[i];
    }
    }
    }
      

  7.   

    http://blog.csdn.net/chinmo/archive/2008/02/17/2100311.aspx
    看看这个吧!!
      

  8.   

    luxu001207 谢谢,但在火狐下不兼容 
      

  9.   

    我叫你看看这兼容的问题
    http://blog.csdn.net/chinmo/archive/2008/02/17/2100311.aspx 
      

  10.   

    chinmo 你别着急,文章我看了。现在的问题 好像出现在var content=clipboardData.getData("Text"); 这句话 
      

  11.   

    up 对karso 的认真学习态度 支持一下
      

  12.   

    我是个初学者 clipboardData.getData 我查了一下 这个函数火狐好像真不兼容。也没有什么可代替的
      

  13.   

    <form   name="form1"> 
    <p   style="font-size:12px"> 
    可以用以下数字串测试(支持的间隔为中英方空格,逗号,连接号): <br> 
    ANFUHD-2GSVKB-8L5BS7-WND200-B6RV1R-AQLJ53-LQ2JPD <br> 
    ANFUHD-2GSVKB-8L5BS7-WND200-B6RV1R-AQLJ53-LQ2JPD <br> 
    ANFUHD   2GSVKB   8L5BS7   WND200   B6RV1R   AQLJ53   LQ2JPD <br> 
    ANFUHD 2GSVKB 8L5BS7 WND200 B6RV1R AQLJ53 LQ2JPD <br> 
    ANFUHD,2GSVKB,8L5BS7,WND200,B6RV1R,AQLJ53,LQ2JPD <br> 
    ANFUHD,2GSVKB,8L5BS7,WND200,B6RV1R,AQLJ53,LQ2JPD <br> 
    使用说明:功能仿照一些软件输入序列号的功能,在第一格粘贴序列号自动添加全部内容, <br> 进行对第一格选择操作可以全部清空全部内容,从最后一格开始按退格键可以从后到前依次清除内容。 
    </p> 
    <table       width="20%"       border="1"       cellspacing="0"       cellpadding="0">       
        <tr>       
        <td> <input   type="text"     name="id1"       maxlength="4"   onpaste="filltxt();return   false;"   onfocus="toend()"     onkeypress="var   evt=window.event       ¦ ¦       event;       checkLength(this,evt);"       > </td>       
        <td> <input   type="text"     name="id2"       maxlength="4"   onkeydown="if(event.keyCode==8   &&   this.value==''){id1.focus();}"   onfocus="toend()"   > </td>       
        <td> <input   type="text"     name="id3"       maxlength="4"   onkeydown="if(event.keyCode==8   &&   this.value==''){id2.focus();}"   onfocus="toend()"   > </td>       
        <td> <input   type="text"     name="id4"       maxlength="4"   onkeydown="if(event.keyCode==8   &&   this.value==''){id3.focus();}"   onfocus="toend()"     > </td>       
        </tr>       
        </table>   
    <script       language="javascript">       
        var   blox   =   new   Array();   //列出要用到的文本框 
    blox[0]=form1.id1 
    blox[1]=form1.id2 
    blox[2]=form1.id3 
    blox[3]=form1.id4 
    //blox[4]=form1.id1 
            function   filltxt() 
            {   
                    var   content   =   clipboardData.getData("Text"); 
                    content=content.replace(/ /g,"   "); 
                    content=content.replace(/-/g,"   "); 
                    content=content.replace(/-/g,"   "); 
                    content=content.replace(/,/g,"   "); 
                    content=content.replace(/,/g,"   "); 
                    var   txt=content.split("   "); 
            for(var   i=0;i <txt.length;i++)   
            {   
                    if(txt[i]){blox[i].value=txt[i]}; 
            } 
            }
             function   toend() 
            { 
                    var   e   =   event.srcElement; 
                    var   r   =e.createTextRange(); 
                    r.moveStart("character",e.value.length); 
                    r.collapse(true); 
                    r.select(); 
            }   
    </from>
      

  14.   

    var content=clipboardData.getData("Text");  在IE是没有问题的  好像是剪切板的意思
      

  15.   

    你给的代码全不?
    怎么在IE下都有错啊!IE下复制东西进去就有错而且批量删除都不能删除
      

  16.   

    event.keyCode
    还有你这个在FF下也是不兼容的
      

  17.   

    刚才那个不是完整的,批量删除已经可以暂时不用考虑的现在就是复制功能,因为还有其他功能怕看的乱,所以下面的代码就是出问题复制的代码:
    <form       name="form1">   
    <p       style="font-size:12px">   
    可以用以下数字串测试(支持的间隔为中英方空格,逗号,连接号):   <br>   
    ANFUHD-2GSVKB-8L5BS7-WND200<br>   
    ANFUHD-2GSVKB-8L5BS7-WND200<br>   
    ANFUHD       2GSVKB       8L5BS7       WND200  <br>   
    ANFUHD 2GSVKB 8L5BS7 WND200<br>   
    ANFUHD,2GSVKB,8L5BS7,WND200<br>   
    ANFUHD,2GSVKB,8L5BS7,WND200<br>   
    使用说明:功能仿照一些软件输入序列号的功能,在第一格粘贴序列号自动添加全部内容,   <br>   进行对第一格选择操作可以全部清空全部内容,从最后一格开始按退格键可以从后到前依次清除内容。   
    </p>   
    <table               width="20%"               border="1"               cellspacing="0"               cellpadding="0">               
            <tr>               
            <td>   <input       type="text"           name="id1"               maxlength="4"       onpaste="filltxt();return       false;"       onfocus="toend()">   </td>               
            <td>   <input       type="text"           name="id2"               maxlength="4"       onkeydown="if(event.keyCode==8       &&       this.value==''){id1.focus();}"       onfocus="toend()"       >   </td>               
            <td>   <input       type="text"           name="id3"               maxlength="4"       onkeydown="if(event.keyCode==8       &&       this.value==''){id2.focus();}"       onfocus="toend()"       >   </td>               
            <td>   <input       type="text"           name="id4"               maxlength="4"       onkeydown="if(event.keyCode==8       &&       this.value==''){id3.focus();}"       onfocus="toend()"           >   </td>               
            </tr>               
            </table>       
    <script               language="javascript">               
            var       blox       =       new       Array();       //列出要用到的文本框   
    blox[0]=form1.id1   
    blox[1]=form1.id2   
    blox[2]=form1.id3   
    blox[3]=form1.id4   
    //blox[4]=form1.id1   
                    function       filltxt()   
                    {       
                                    var       content       =       clipboardData.getData("Text");   
                                    content=content.replace(/ /g,"       ");   
                                    content=content.replace(/-/g,"       ");   
                                    content=content.replace(/-/g,"       ");   
                                    content=content.replace(/,/g,"       ");   
                                    content=content.replace(/,/g,"       ");   
                                    var       txt=content.split("       ");   
                    for(var       i=0;i   <txt.length;i++)       
                    {       
                                    if(txt[i]){blox[i].value=txt[i]};   
                    }   
                    } 
                      function       toend()   
                    {   
                                    var       e       =       event.srcElement;   
                                    var       r       =e.createTextRange();   
                                    r.moveStart("character",e.value.length);   
                                    r.collapse(true);   
                                    r.select();   
                    }       
    </from> 
      

  18.   

    死了 5555  http://www.firefox.net.cn/newforum/viewtopic.php?p=26970  官方网站的说法  不知道真的假的?
      

  19.   

    好,太感谢chinmo了,我现在都有点绝望了看了那个文章说的,你给了我信心
    <body>
        <form name="form1">
    <p style="font-size:12px">
    可以用以下数字串测试(支持的间隔为中英方空格,逗号,连接号):<br>
    ANFUHD-2GSVKB-8L5BS7-WND200<br>
    ANFUHD-2GSVKB-8L5BS7-WND200<br>
    ANFUHD 2GSVKB 8L5BS7 WND200 <br>
    ANFUHD 2GSVKB 8L5BS7 WND200<br>
    ANFUHD,2GSVKB,8L5BS7,WND200<br>
    ANFUHD,2GSVKB,8L5BS7,WND200<br>
    使用说明:本页面功能仿照一些软件输入序列号的功能,在第一格粘贴序列号自动添加全部内容,<br>进行对第一格选择操作可以全部清空全部内容,从最后一格开始按退格键可以从后到前依次清除内容。
    </p>
    <table   width="20%"   border="1"   cellspacing="0"   cellpadding="0">   
      <tr>   
      <td><input type="text"  name="id1"   maxlength="4" onpaste="filltxt();" onselect="cleartxt();" onfocus="toend()"   ></td>   
      <td><input type="text"  name="id2"   maxlength="4" onkeydown="if(event.keyCode==8 && this.value==''){id1.focus();}" onfocus="toend()" ></td>   
      <td><input type="text"  name="id3"   maxlength="4" onkeydown="if(event.keyCode==8 && this.value==''){id2.focus();}" onfocus="toend()"></td>   
      <td><input type="text"  name="id4"   maxlength="4" onkeydown="if(event.keyCode==8 && this.value==''){id3.focus();}" onfocus="toend()" ></td>   
      </tr>   
      </table>   
      <script   language="javascript">   
      var blox = new Array(); //列出要用到的文本框
    blox[0]=form1.id1
    blox[1]=form1.id2
    blox[2]=form1.id3
    blox[3]=form1.id4
    //blox[4]=form1.id1    function filltxt()
        { 
            var content = clipboardData.getData("Text");
            content=content.replace(/ /g," ");
            content=content.replace(/-/g," ");
            content=content.replace(/-/g," ");
            content=content.replace(/,/g," ");
            content=content.replace(/,/g," ");
            var txt=content.split(" ");
        for(var i=0;i<txt.length;i++) 
        { 
            if(txt[i]){blox[i].value=txt[i]};
        }
        }
        function cleartxt()
        { 
        for(var i=0;i<blox.length;i++) 
        { 
            blox[i].value="";
        }
        }
        function toend()
        {
            var e = event.srcElement;
            var r =e.createTextRange();
            r.moveStart("character",e.value.length);
            r.collapse(true);
            r.select();
        }  
        </script>
      </form>
    </body>
      

  20.   

    要不你就在第一个窗口上做手脚
    就是当点击鼠标时弹出一个输入窗口,这里就是用这方法替代剪切板
      意思就是把var content = clipboardData.getData("Text");
    这里的这个换成是输入框的形式,呵呵,能理解我的意思吧?
     输入窗口方法:   
       window.prompt参数,有两个,   
       第一个参数,显示提示输入框的信息.   
       第二个参数,用于显示输入框的默认值.   
       返回,用户输入的值.   
        
       <script>   
       var    str    =    window.prompt("请输入密码","password")   
       alert(str);   
       </script> 
      

  21.   

    window.prompt
    这个函数你用过没啊???
    JS的
    你去试一下这个效果你获取会明白我的意思就是利用这个函数获取用户输入的序列号代替剪切板
    你注意看了没?
    var         str         =         window.prompt("请输入序列号","password")    
    var content = clipboardData.getData("Text");嘿嘿看看这个只是差别什么?一个是自动获取的,一个是复制到输入框里的
      

  22.   

    window.prompt 这个的确不这么用,刚在网上查了一下,是弹出一个窗体的效果.这样做反而给用户添加了麻烦 不是很理想的效果.我也一直在想相关兼容性的问题,暂时真没什么好办法,认命了
      

  23.   

    不违背啊
    你复制,粘贴到这个弹出的对话框,然后用变量获得这个对话框的值,就形成了啊
    很简单的啊
    实际上这部分就是成了
     var content =window.prompt("请输入序列号","password");
            content=content.replace(/ /g," ");
            content=content.replace(/-/g," ");
            content=content.replace(/-/g," ");
            content=content.replace(/,/g," ");
            content=content.replace(/,/g," ");
            var txt=content.split(" ");
    明白了吧???
      

  24.   

    我明白你的意思,但 firefox下 window.prompt 不可行 兼容不好
      

  25.   

    karso 
    不积跬步,无以至千里 
    等 级:
     发表于:2008-02-18 13:39:1947楼 得分:0 
    我明白你的意思,但   firefox下   window.prompt   不可行   兼容不好 
     
    ============================================================FF下prompt怎么不好啦?
      

  26.   

    汗!你弄成兼容的就可以了!
    只是告诉你有prompt这函数!
      

  27.   

    呵呵 两位大哥别急,刚才测试了一下window.prompt在ff是支持的 但在我写的程序里不知道 我正在想办法解决