<html>
<head></head>
<body>
    <table>
        <tr>
            <td onclick="document.all['txt'].select();alert(document.selection.createRange().text);">aaa</td>
        </tr>
    </table>
    <input type="text" name="txt"/>
    <input type="button" onclick="document.all['txt'].focus();alert(document.selection.createRange().text);"/>
</body>
</html>

解决方案 »

  1.   

    换种思路,onclick换为onmouseover,避免没选中内容,
    如果需要onclick触发,也可以先onmouseover时将选中的值先取出来。
      

  2.   

    <td onmouseover="document.selection.createRange().text='替换后的字符';">aaa</td>
      

  3.   

    思路:onmouseover时完成替换操作,即将替换后的字符串放到变量中,onclick时再将这个变量的值放到input里。
      

  4.   

    这样不行的,
    如果文本框里的值是:abcde
    我选中de,要把它替换成[ i ]de[ /i ]
    你怎么换?
    因为点的时候拿不到selection
    所以不能用document.selection.createRange().text = ..
    这种方式来换了。
      

  5.   

    onmouseover的时候你可以得到abcde
     
      

  6.   

    可以啊,可是我要点了以后再换哪,并不是mouseover的时候换。
    你帮忙做一个示例吧,这么说实在不明白。
      

  7.   

    其实原因在于你点击TD之后,选择的文字失去了焦点,而点按纽就不会了,你为什么不试着把一个BUTTON放在BUTTON里呢.如果是效果难看的话,完全可以用CSS美化
      

  8.   

    你这个focus函数其实是多余的,你选择了文字之后,再去点TD之前,文字是具有焦点的,在你点击之后,文字失去了焦点,selection为空,显示出来的自然是空,如果你点的是button的话,文字是不会失去焦点的,(虽然这样说并不合适)虽然我说不清楚这是什么原理,大概是设计者是想到BUTTON往往会是对某个事件进行处理,而将点击BUTTON之前的状态保留,纯属个人观点
      

  9.   

    点了BUTTON之后,不会引起selection的改变,而点击了BUTTON之外的任何地方,SELECTION都会变为空,我也不知道是为什么