0

Javascript のブラウザー ウィンドウで選択したテキストにスパン クラスを適用します (ハイライト機能のように)。

私は試してみました

function replaceSelectedTextWithHTMLString(newstring) {
    var range = window.getSelection().getRangeAt(0);
    range.deleteContents();
    range.innerHTML = newstring;
}

しかし、それは機能しません。newstring= "< span = "myspan" > text </ span >" として挿入しようとすると、何も見えず、「テキスト」が表示されません。HTMLコードが気に入らないようです。どうすれば解決できますか?

4

1 に答える 1

1

これがどれほど簡単かは、正確に何を達成する必要があるかによって異なります。背景色を使用した基本的な強調表示だけが必要な場合は、document.execCommand(). これを行うコードについては、次を参照してください: Javascript を使用して選択したテキストの CSS を変更する

提供できるよりも多くのスタイルを適用する必要がある場合document.execCommand()(太字や斜体などには、他にもさまざまな書式設定コマンドがありますが、これによって生成されるマークアップはブラウザーによって異なり、常に CSS ベースであるとは限りません)、それははるかにトリッキーです: 一般に、選択範囲内のすべてのテキスト ノードを目的のクラスのスパンで囲む必要があります。RangyとそのCSS クラス アプライヤー モジュールを使用して、クロスブラウザーでこれを行うことをお勧めします。免責事項: これは自分のライブラリのプラグインです。

于 2011-02-09T10:12:57.857 に答える