1

div や span などの何らかの要素で文字列または html から選択を取得し、標準準拠のブラウザーでうまく機能する MaxArt の助けを借りて書式設定するためのスクリプトをまとめました。ただし、古いバージョンの IE では、選択範囲は取得できますが、開始点と終了点を取得する方法がありません。開始点と終了点は、選択を操作して文字列に戻すために必要です。

SelectionStart または SelectionEnd は、テキストエリアでは機能しますが、div またはスパンでは機能しません。以下の MaxArt のご厚意により、標準準拠のブラウザで動作します。span と div の古いバージョンの IE で動作するものを誰かが推奨できますか?

ありがとう!

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