我已经整理了一个脚本,用于从某个元素(如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>