-1

目的のテキストが選択され、中括弧textarea、引用符、かっこなど

たとえば、テキストエリアに「クイックブラウンフォックスジャンプ」が含まれていて、「ブラウンフォックス」が選択されている場合、キーボードの左中かっこキーを押すと、「ブラウンフォックス」は中かっこで囲まれ、選択解除されます。 。括弧、一重引用符/二重引用符、角かっこについても同じことが言えます。

このソリューションは、Chrome、FF、Safariの最近のバージョンで機能するはずです。

4

2 に答える 2

1

選択した範囲のテキストを取得する方法をGoogleで検索してください。コンテンツは必要ありません。開始位置と長さだけが必要です。次に、を使用して文字列をsubstr「前、間、後」の部分に分割し、括弧を挿入して、それらの部分を再度結合します。

コードを記述していて、実際に問題が発生している場合は、喜んでサポートさせていただきます。その間、あなたがここに示している態度の種類を非難するこのブログ投稿を読んでください。

于 2012-08-31T21:34:04.357 に答える
1

この完全なソリューションをチェックしてください:

<html>
    <head>
        <title></title>

        <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.min.js"></script>
        <script type="text/javascript">
            (function($){
                $(document).ready(function(){
                    var keyMap = {
                        '(': ')',
                        '[': ']',
                        '<': '>',
                        '{': '}',
                        '"': '"',
                        '\'': '\''
                    };

                    $('.editor').keypress(function(e){
                        if(this.selectionStart == this.selectionEnd)
                            return true;

                         e.preventDefault();

                         var txtCur = $(this).val();
                         var left = txtCur.substring(0, this.selectionStart);
                         var middle = txtCur.substring(this.selectionStart, this.selectionEnd);
                         var right = txtCur.substring(this.selectionEnd);

                         var cur = String.fromCharCode(e.keyCode);

                         if(keyMap[cur])
                            middle = cur + middle + keyMap[cur];
                         else
                            middle = cur;

                         var pos = (left+middle).length;
                         $(this).val(left+middle+right);
                         this.setSelectionRange(pos,pos);

                    });
                });
            })(jQuery);
        </script
    </head>
    <body>
        <textarea class="editor">abcdefghijklmnopqrstuvwxyz</textarea>
    </body>
</html>
于 2012-08-31T22:10:09.877 に答える