findText没查到结果,innerText不是连续的文本,所以查不到。

解决方案 »

  1.   

    window.clipboardData.setData("Text",oSource.innerText);//或者用innerHTML
      

  2.   


    function fnCopy() {
    var _s=document.getElementById('oSource').innerText;
    window.clipboardData.setData("Text",_s);
    }firefox 下无效
      

  3.   

    <script language="javascript" type="text/javascript"> var s = 0; function cit()
    {
    var newtb = tb1.cloneNode(true);
    newtb.setAttribute("id","id"+s);
    newtb.onclick = function () { cit();}
    document.body.appendChild(newtb);
    s++;
    }</script>
    </HEAD><BODY>
    <TABLE id="tb1" onclick="cit();" border="1" width="20%">
    <TR>
    <TD>asdfasdfasdf</TD>
    <TD>asdfasdfasdfasdf</TD>
    </TR>
    </TABLE>
    </BODY>
    </HTML>
      

  4.   

    To fosjos, yorkane:
    你们的方法把表格的属性去除了,和我直接把<TABLE></TABLE>去除后复制的效果差不多,不符合要求.To lantersen:
    要把表格复制到剪贴板,不是追加到页面上.
      

  5.   

    这是一个妥协办法,注意标志字符串“Marks”,"EndMarks".不要和其他的字符串重复,你可以自己命名偏僻一点的词。字符串前后除了回车不要有其他的字符。
    测试通过<SCRIPT>
    function selectInPage(str,endstr)   {   
    var tb=document.getElementById("oSource").innerText;
    var len1=str.length+1;
    var len2=tb.length-len1-endstr.length;
     txt=document.body.createTextRange();
     if(txt.findText(str))     
              {   
                  txt.moveStart("character", len1);
                  txt.moveEnd("character",len2);
                  txt.select();
              }
    }
    </SCRIPT>
    <BODY>
    <input type="button" name="Button" value="复制到我的剪贴板" 
    onClick="selectInPage('Marks','EndMarks')">
    <DIV ID="oSource" style="height:300px;" >
    Marks
    <table border="1">
    <tr>
    <td>asfasf</td>
    <td>dfhdfh</td>
    </tr>
    <tr>
    <td>asfasf</td>
    <td>dfhdfh</td>
    </tr>
    </table>
    EndMarks
    </DIV>fdsafdasfas
    fasdfdas这些文字都不会被选中
      

  6.   

    function fnCopy() {
      var str="";
      var table=document.getElementById("oSource").children[0];
      var rows=table.rows;
      for(var i=0;i<rows.length;i++){
        var cells=rows[i].cells;
        for(var j=0;j<cells.length;j++)
          str+=cells[j].innerText+" ";
        str+="\r\n";
      }
      window.clipboardData.setData("Text",str);
    }
      

  7.   

    能说说你的下一步操作吗,即得复制后是(A:需要复制的整个表格),还是(B:只需要表格当中的内容)?1:如果是A的话,那么你可以试着去取得oSource.innerHTML,再转换成字符串类型,再把取得的字符放到复制板当中去,效果方面呆可能得借助一下第二种方法(B),这一点你可以到IE里去试着选中某个表格,效果看上去也就是当中的内容被选中了.2:如果是B的话,那楼上的应该是你要的;
      

  8.   

    yorkane的方法已经能够解决我的问题了,多谢各位的热心帮助。