2012-01-03 8 views
0

jQueryを使用して小さなHTMLエディタを作成しています。私はのために私自身のボタンのアイコンを作成しました: jQueryを使用して、選択したテキストを取得したり置き換えたりします。

  • 下線

    • 大胆
    • 斜体
    • 挿入ハイパーリンク
    • 挿入画像
    • 順不同リスト
    • 順序付きリスト

    しかし、私はdonotそれをいかに稼働させるか。私の考え:

    • 太字:エディタボックスで、ユーザーがこのボタンをクリックすると、選択したテキストは、()<b> ..selected_text.. </b>に置き換える必要があります。それ以外の場合は、カーソル位置に<b></b>を挿入します。

    • 斜体:ユーザーがこのボタンをクリックすると、エディタボックス()内の選択されたテキストが<i> ..selected_text.. </i>に置き換えられます。それ以外の場合は、カーソル位置に<i></i>を挿入します。

    • ため、上記と同じ

      下線

    • など....

    だから私の質問は、TEXTAREAから選択したテキストを取得する方法とタグと交換する方法であり、 ?また、カーソル位置にテキストを挿入する方法(つまり、その点滅する行)?

    これはStackoverflowのエディタに表示されるボタンと同じですが、いくつかの質問を投稿します。 (たとえば、テキストを選択していないときに、StackoverflowのエディタでBOLDボタンをクリックしてみてください)

  • 答えて

    2

    I は、範囲を扱うときにブラウザ間の差異を滑らかにするJavaScriptライブラリを使用することをお勧めします選択肢:Rangy

    クロスブラウザのJavaScript範囲と選択ライブラリ。すべての主要なブラウザで共通のDOM RangeおよびSelectionタスクを実行するための簡単な標準ベースのAPIを提供し、Internet ExplorerとDOM準拠のブラウザ間でこの機能の大幅に異なる実装を抽象化します。 <textarea><input type="text">要素で選択を操作するための

    、Rangyの不十分な名前とsvelterツインプロジェクト、Rangyinputsを参照してください参照してください。 TEXTAREAから選択したテキストを取得する方法やタグに置き換える方法


    the Rangy CSS Class Applier Module(およびassociated demo page)を参照してください。

    +0

    ありがとうございます。それはとても役に立ちました。 –

    +0

    私はこれに関する質問があります: 'onMouseDown'イベントの中でjavascript関数を呼び出すための適切な方法(ブラウザ間の互換性)は何ですか?これは 'onMouseDown =" myFunction(); "正しい方法ですか?しかし、私は正しい方法を知りたいので、私は今学ぶことを試みています。 –

    +1

    jQueryを使用しているので:['.mousedown()'](http://api.jquery.com/mousedown/)。 –