function getrangeObject(editor) {
        var userSelection, rangeObject; 
        if (editor.document.getSelection) {
            //现代浏览器 
            userSelection = editor.document.getSelection();
        } else if (editor.document.selection) {
            //IE浏览器 考虑到Opera,应该放在后面 
            userSelection = editor.document.selection.createRange();
        } 
        //Range对象 
        rangeObject = userSelection;
        if (userSelection.getRangeAt) {
            //现代浏览器 
            rangeObject =userSelection.getRangeAt(0);
        } 
        return rangeObject;
    }如果执行的是editor.document.selection.createRange()则可以通过item[0]获取到选中元素对象,
如果执行的是userSelection.getRangeAt(0)似乎获取的选中对象会有偏差....

解决方案 »

  1.   

    实在搞不懂选中的select元素要失去焦点一下才可以获取到select元素
      

  2.   


    var selection, part_one, part_two;selection = document.getSelection().getRangeAt(0);part_one = selection.startContainer.splitText(selection.startOffset);selection.endContainer.splitText(selection.endOffset);
    part_two = selection.endContainer;selection = part_one + part_two;