如题用于编辑器中,选中一段文字,在失去焦点后,用JS重新找回来
我用onmouseup,onkeyup事件记录了range,但不知道怎么恢复过来IE下, 用Range.select()可以恢复,就是FF下不知道怎么办了

解决方案 »

  1.   

    再补充一个问题,onpaste事件之后,用setTimeout回调,如何获取粘贴的内容,并且将内容清除HTML格式后替换原有内容  
      

  2.   

    通过反复测试,发现用以下方法可以基本实现Range的高亮选中var R=null; //全局变量
    Editor.onmouseup = Editor.onkeyup = function(){R = window.getSelection().getRangeAt(0);};this.Focus() = function(){
     var S = window.getSelection(); //每次需要恢复焦点高亮选中时运行
     S.addRange( R );
    };但是这似乎不是很稳定,如果仅仅只是找回焦点并选中高亮显示,哪没问题,可问题是如果执行了其它操作,如改变颜色,添加链接,哪基本只能执行一次,第二次执行时range不存在了,我想不明白的是,这个过程,我在Editor里没有任何直接的onmouseup和onkeyup事件触发,也就是没有对全局变量R进行赋值,R应该一直保存着range
    而且addRange这个方法似乎也不是为了恢复焦点选区高亮显示存在的,它只是向selection里添加一个range,我在想,是不是应该有其它更好的办法
      

  3.   

    还有,我是用DIV做Editor的,没有用iframe,改用iframe,ff好像没这个问题