javascript:适用于旧版IE的selectionStart和selectionEnd的替代品

时间:2012-12-21 02:40:06

标签: javascript selection

我已经整理了一个脚本,用于从某个元素(如div或span)中获取字符串或html中的选择,并在MaxArt的帮助下对其进行格式化,这对于符合标准的浏览器非常有用。但是,对于旧版本的IE,虽然我可以选择,但我没有办法获得起点和终点。一旦被操作回到字符串中,就必须使用起点和终点。

SelectionStart或SelectionEnd适用于textareas但不适用于div或span。以下礼貌的MaxArt适用于符合标准的浏览器。任何人都可以推荐一些适用于旧版IE的span和div。

谢谢!

JS

function editText() {
//var sel = document.getElementById('displaytext').textContent;
//alert(sel);
    var sel = getSelection();
    alert(sel);
    var rng, startSel, endSel, sel;
if (!sel.rangeCount
        || displaytext.compareDocumentPosition((rng = sel.getRangeAt(0)).startContainer) === Node.DOCUMENT_POSITION_PRECEDING
    || displaytext.compareDocumentPosition(rng.endContainer) === Node.DOCUMENT_POSITION_FOLLOWING ) {
    sel = "";
}
else {
    startSel = displaytext.compareDocumentPosition(rng.startContainer) === Node.DOCUMENT_POSITION_FOLLOWING ? 0 : rng.startOffset;
    endSel = displaytext.compareDocumentPosition(rng.endContainer) === Node.DOCUMENT_POSITION_PRECEDING ? displaytext.textContent.length : rng.endOffset;
    sel = displaytext.textContent.substring(startSel, endSel);
}
}

HTML

<span id = "displaytext">HERE IS A BUNCH OF TEXT THAT I WANT TO GRAB A SELECTION FROM</span> <a href="javascript:void(0)" onclick="editText()">link</a>

0 个答案:

没有答案