0

私は必要なことを実行するかなり良い関数を持っていますが、IEでは改行や他の何かを考慮していません。

次の機能は次のとおりです。

    this.createSelection = function (field, start, end) {
        if (field.createTextRange) {
            var selRange = field.createTextRange();
            selRange.collapse(true);
            selRange.moveStart('character', start);
            selRange.moveEnd('character', end - start);
            selRange.select();
        } else if (field.setSelectionRange) {
            field.setSelectionRange(start, end);
        } else if (field.selectionStart) {
            field.selectionStart = start;
            field.selectionEnd = end;
        }
        field.focus();
    }

2つの点で変更する必要があります。

  1. テキストの正しい部分を改行などで強調表示します。

  2. textarea内だけでなく、div、p、spanなどでも強調表示します。

助けてくれてありがとう。

4

1 に答える 1

0

私は、テキストエリアとテキスト入力に対してこれを行い、改行を正しく処理する関数をStackOverflowで何度も公開しました。次に例を示します。

https://stackoverflow.com/a/3373056/96100

通常のHTML要素内の選択に対して同じことを行うのは難しいですし、あまり明確に定義されていません。これについての答えは次のとおりです。

https://stackoverflow.com/a/9841644/96100

于 2012-09-07T17:30:39.983 に答える