web-dev-qa-db-ja.com

contenteditable divで選択したテキストを置き換えます

私は答えを求めて高くも低くも見えてきましたが、失敗しました。

Contenteditable divで選択したテキストを置き換えるクロスブラウザソリューションはありますか?ユーザーにいくつかのテキストを強調表示させ、強調表示されたテキストをxxxxxに置き換えるだけです。

40
Judy

以下は、すべての主要なブラウザーでジョブを実行します。

function replaceSelectedText(replacementText) {
    var sel, range;
    if (window.getSelection) {
        sel = window.getSelection();
        if (sel.rangeCount) {
            range = sel.getRangeAt(0);
            range.deleteContents();
            range.insertNode(document.createTextNode(replacementText));
        }
    } else if (document.selection && document.selection.createRange) {
        range = document.selection.createRange();
        range.text = replacementText;
    }
}
75
Tim Down