//复制黏贴到指定编辑区
 function pastetemp() { 
 var txt="";
 
  txt = document.selection.createRange().text;      
 var ta = document.getElementById("temptext");    
 ta.focus();
if(window.clipboardData) {      
  window.clipboardData.clearData();  
  window.clipboardData.setData("Text", txt);
           //alert("一定要添加到这行后面才会生效,");
}     
   ta.document.execCommand("paste"); // 粘贴
 } 以上函数一定要添加一个alert()复制粘忒到制定区域才会生效
请问有人碰到过吗? 有的给个说法吧,谢谢大家

解决方案 »

  1.   

    有一种可能
    如果你没加ALERT,那程序执行那那步的时候,页面也还有加载好,所以找不到对应的元素
    加了alert后,有了停留时间,就能够找到 了
      

  2.   

    这样子,没什么问题?最好贴出相关的全部代码!断章取义,很难判断!
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
     </HEAD> <BODY>
     <script>
     //复制黏贴到指定编辑区 
    function pastetemp() { 
    var txt=""; txt = document.selection.createRange().text;      
    var ta = document.getElementById("temptext");    
    ta.focus(); 
    if(window.clipboardData) {      
      window.clipboardData.clearData();  
      window.clipboardData.setData("Text", txt); 
              //alert("一定要添加到这行后面才会生效,"); 
    }   
      ta.document.execCommand("paste"); // 粘贴 
    } </script><input type="text" value="123"/>
    <input id="temptext" type="text" value=""/>
    <input type="button" onclick="pastetemp()" value="粘贴"/>
     </BODY>
    </HTML>
      

  3.   

    我以前也遇到这类似的情况,不过后来却是它自个儿好的.
    我想应该不是1楼所说的原因,因为以前我也这样认为,通过timeout测试了,仍然没能够解决问题.
    观注中.....
      

  4.   

    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>新建网页 1</title>
    </head><body>选择页面文字,会自动复制黏贴到指定编辑区 <br><textarea id=temptext class="codezone" style="width: 100%" rows="12" cols="50"></textarea><br>
    qwertyuiopasdfghjkl <script language="javascript">
    <!--
    //复制黏贴到指定编辑区 
    function pastetemp() { 
    var txt= document.selection.createRange().text; //alert(txt)     
    var ta = document.getElementById("temptext");    
    ta.focus(); 
    if(window.clipboardData) {      
      window.clipboardData.clearData();  
      window.clipboardData.setData("Text", txt); 
              //alert("一定要添加到这行后面才会生效,"); 
    }   
      ta.document.execCommand("paste"); // 粘贴 
    }document.onmouseup = function(){ 
    if ((document.selection)&&(document.selection.type == "Text")) {pastetemp()}
    }//-->
    </script>
    </body></html>
      

  5.   

    同意1楼的把<SCRIPT>块放到页面最后
    或<SCRIPT LANGUAGE="JavaScript" defer>
    试试
      

  6.   

    额今个也遇到这个问题,发现不是同步异步问题,而是IE缓存问题,清IE缓存就OK了。
      

  7.   

    NND,今天发现这问题和同步异步还是有关系的。将this.req.open("GET", this.url, true)异步传输,改成this.req.open("GET", this.url, false)同步传输。