2010-12-15 11 views
10

$(element)[0].selectionStartはテキストエリアでのみ動作するようです。非テキストエリアのための代替Jquery:textarea以外の要素のselectionStart


タグでDOM要素内の文字列をラップしようとしているイム(太字、斜体...)



もあり、どのように私はラッピングを元に戻すのですか?

答えて

9

これは扱いにくい領域です。 SelectionオブジェクトとDOM Rangeオブジェクトが必要です。しかし、IEはこれをすべて、適切なブラウザとはまったく異なっています。

タグ内のタグを囲むことも一般的ではありません。選択範囲内のすべてのテキストノードを考慮する必要があります。

私のRangyライブラリは、IEのSelection/Range APIを正規化し、ある程度役立つかもしれないmodule to apply a CSS class to a selectionを持っています。また、選択/範囲に他のスタイルを適用するためのより一般的なモジュールを作成する予定です。

恥知らずの自己宣伝には申し訳ありませんが、たくさんのコードを書くのには手遅れですが、他に何を提案するか分かりません。

+0

ご回答いただきありがとうございます。私はJavaScriptの文字列操作をもっと学ばなければなりません。 – Zebra

0

は私がペーストにタグを取り除き、素晴らしい動作しているように私のスクリプトでそれを使用するjQueryのfieldSelectionプラグインに http://plugins.jquery.com/project/fieldselection

を使用しています。 http://blog.brokenbytes.info/2010/09/stripping-tags-on-paste-using-jquery/

+0

fieldSelectionプラグインは、OPが望ましくないテキストエリアと入力用です。 –

+0

投稿が編集されました – m4tt1mus

関連する問題