###前提
はじめて質問させて頂きます、ルール等も把握しきれておりませんので
不備等がございましたらご指摘を頂けると幸いです。
###実現したいこと
ニコニコ動画のHTML5プレイヤーに表示されているコマンド欄, コメント欄に対して
ボタンを一つ押すと値が反映されるjavascriptのコードを完成させること。
私はニコニコ動画のコマンド欄とコメント欄に対して、1つのテキストエリアに値をカンマ区切りで内容を貼り付け
その状態でインサートボタンを押下したら自動的に2つの入力欄に対して値の入力が行われるスクリプトを作成しています。
※通常のコメントの流れは コマンド欄に色やサイズを入力 -> コメント内容を入力 -> [コメントする]ボタンを押下
###現状
①jsファイルをgitpageに配置し、jsファイルをブックマークから呼び出す形でプレイヤー欄の下部にテキスト入力欄を追加するようにしました。
呼び出し例:
javascript:(function(){var s=document.createElement('script');s.src='Source.js';document.getElementsByTagName('head')[0].appendChild(s);})();
<- 実行結果 ->
![
このようにプレイヤー下部にテキストエリアが表示されます。
②追加されたテキストエリアに[big,テストコメント]と入力した状態で[インサート]ボタンを押下するとそれぞれのinputエリアに対して
値が代入されます。(カンマ区切り)
<- 実現イメージ ->
ボタンを押下したら、テキストエリアに入力されている内容をコマンド欄とコメント欄に代入するための変数に格納し、その内容をvalueに指定してそれぞれの入力欄に代入しています。
ここだけ確認すると正常に目的が果たせているように見えます。
###課題
それぞれの入力欄に値が代入されているように見えるが、 value の所に反映されない。
見た目上は内容が反映されているように見えますが、chromeの検証ツール等で確認してみると該当部分の value に対して反映の処理がされていませんでした。そのためこのままコメントをしようとしても何もない状態として扱われてしまいます。
しかし内容の反映後に、コマンド欄とコメント欄に対して編集操作を手動で行うと内容が反映されます。(inputのイベントが発生しているから?)
###質問事項
現状は見た目だけが反映されている、という状態で手動編集をすると内容が更新されるということからinput時に内容の確定処理のようなことが行われているものと推察しています。
入力後にスクリプト上から手動でキー編集イベントのようなものを発火させて値を反映・更新処理を行いたいのですが具体的にどのような記述をすれば良いのかがわかりません。
根本の解決策、またはこうしてみれば良いのではないかというご意見をいただければと思います。
以上よろしくお願いします。
###ソースコード(chromeの検証ツールでソース上に直接テキストエリアを追加)
HTML
1<div class="NicoenqueteNotificationContainer"> 2 <div id="scriptdiv"> 3 <button id="auto_insert">インサート</button> 4 <textarea id="script_text_area" style="margin: 0px; width: 572px; height: 117px;"></textarea></div> 5 </div> 6</div>
javascript
1// コマンド入力欄取得 2var elements_command = document.getElementsByClassName("CommentCommandInput")[0]; 3 4// 追加したテキストエリア取得 5var elements_get = document.getElementById("script_text_area"); 6 7// コマンド入力欄に対して、追加したテキストエリアの内容を追記 8elements_command.value = elements_get.value;
一部省略しています。カンマ区切りの処理等)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/14 03:45
2018/01/14 04:01
2018/01/14 04:07