yuu_nkjm blog
2012-04-16(Mon) [長年日記]
[JavaScript][Chrome] Textareaにテキストを入力する (テキスト入力イベントを与える)
JavaScriptを使って,テキストエリアに文字列を挿入したい,テキストエリアの文字列を書き換えたい.そんな時,Textareaのvalueを書きかえると,textareaのvalueが代わり,与えた値が表示される.また,textInputイベントを発行することでもTextareaに文字列を入れることが出来る.
// jQuery使ってます.後半パートでは参考サイトのソースを優先. // targetTextAreaというidをもったtextareaを取得. var element = $(targetTextArea); //textareaに表示される文字列(値)を変更するには,valを書きかえる. element.val(data); // focusがあるNodeをとって. var fn = document.getSelection().focusNode; // textarea(もしくはinput)を取って var el = fn.getElementsByTagName('textarea')[0] || fn.getElementsByTagName('input')[0]; // textareaに"挿入文字列"を挿入 insert_text(el, "挿入文字列"); function insert_text(textarea, text){ // TextEventを生成する. var textEvent = document.createEvent('TextEvent'); // テキスト入力イベントを作成する.これに引数textが組み込まれる. textEvent.initTextEvent ('textInput', true, true, window, text); // 仮引数textareaに対して,作成したイベントをディスパッチする. textarea.dispatchEvent(textEvent); }
なぜこれを調べたかというと,Facebookのtextareaにvalue書き換えにより文字列を与えて,その文字列を投稿させようとしたのだが,うまくいかなかったからだ.Facebookのhtmlを見るとTextareaへのkeypressイベントが何かに渡されている様に読めたので,Javascriptから文字列を書きかえるイベントを発行させた.そうしたところ,意図通り動いた.
- https://www.google.co.jp/ ×176
- https://www.google.com/ ×4
- http://search.fenrir-inc.com/?hl=ja&safe=off&chann... ×1
- http://search.mobile.yahoo.co.jp/pcsite/list?p=テキス... ×1
- https://www.google.com/search ×1
- http://search.fenrir-inc.com/?hl=ja&channel=sleipn... ×1
- https://www.google.fr/ ×1
- http://search.yahoo.co.jp/ ×1
- iPad textarea 挿入 ×3 / javascript テキストエリア 挿入 ×3 / textarea javascript 書き換え ×2 / javascript テキストエリア 文字挿入 ×2 / javascript texearea 書き込む ×2 / uwsc IE textarea へ フォーカスする」 ×2 / textarea イベント ×2 / javascript initTextEvent ×2 / inittextevent ×2 / php テキストエリアに文字列挿入 ×2 / テキストエリア facebook ×1 / javascript 文字列 挿入 テキストエリア ×1 / javascript テキストエリア 文字列 挿入 ×1 / Intellij TexArea ×1 / JavaScript 文字 テキスト 入力 ×1 / google apps textarea テキストの取り出し ×1 / jquery textarea内 文字 追加 ×1 / textarea に文字列挿入 javascript ×1 / var 文字挿入 ×1 / HTML textarea 文字 イベント ×1 / initTextEvent ×1 / textarea textinputイベント 引数 ×1 / iPad テキストエリア キャレット ×1 / python テキストエリア ×1 / javascript 入力 イベント テキストエリア ×1 / textarea 書き換え javascript ×1 / uwsc テキストエリア 入力 ×1 / UWSC java textarea ×1 / textarea uwsc ×1 / javascript textarea 入力 chrome ×1 / Facebook 文字列 テキストエリア ×1 / javascript テキストエリア イベント ×1 / textarea Java イベント ×1 / Textarea 仮入力 ×1 / jmeter textarea 値を取得 ×1 / textarea class 指定 UWSC ×1 / uwsc textarea ×1 / +javascript initTextEvent ×1 / textarea 文字 追加 ×1 / javascript textarea 文字列挿入 ×1 / 選択 jQUery textarea document.getSelection ×1 / UWSC Chrome textareaへの入力 ×1 / textarea 文字 挿入 -jQ ×1 / javascript イベント 作成 文字入力 ×1 / uwsc テキストエリア ×1 / uwsc input 複数行 ×1 / テキストエリア 仮文字 ×1 / HTML textarea フォント編集 javascript ×1 / TextAreaの書き換え ×1 / Windows 7 64bit CreateEvent ×1 / UWSC テキストエリア コピー ×1 / <textarea>のテキスト ×1 / HTA java script textarea ×1 / UWSC テキストエリア ×1 / javascript テキストエリア 文章 ×1 / textarea 挿入 javascript 他のテキストエリアへ値渡し ×1 / uwsc ie textarea value ×1 / initTextEvent input ×1 / JS textarea 文字挿入 ×1 / javascript テキストエリア 入力 文字 エクセル ×1 / javascript テキストエリア 書き換え ×1 / Facebook テキストエリア ×1 / TEXTAREAのテキスト ×1