1

我已经编写了一个脚本,用于从某种元素(例如 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>
4

0 回答 0