-
ID:rHf2rI さんの質問

javascriptまたはjqueryで"paste"イベントが発生した時に、ペーストされた文字列を取得する方法はありますか?(event.currentTarget.valueではダメでした)


  • イベント発生時に生成されるeventオブジェクトがどんなキーと値を持っているかを確認出来るウェブページというのはあるのでしょうか?

  • イベントオブジェクトから取得出来ない場合は、ペースト発生前の文字列とペースト発生後の文字列の差分を取得するという方法で対応しようとは思っているのですが、簡単にできる方法があれば教えて頂けると嬉しいです。

みんなの回答 3 件

ID:qqhiK2 さんの回答

ペーストされた文字列ならon(’paste’)のイベントでペースト先の文字列を取得すればいいんじゃない?
>イベント発生時に生成されるeventオブジェクトがどんなキーと値を持っているかを確認出来るウェブページというのはあるのでしょうか?
こんなものがあって何の意味があるのでしょう。そのウェブページで起こるイベントしかキャッチできないですよね。

  • 普通に中身を見たいなら、$(window).on(’event’, function(e) { console.log(e) }でいいんじゃないでしょうか?’
  • event’のとこは適宜変えてください。

ID:qqhiK2

クリップボードの中身を取得するのはブラウザーそれぞれ対応しないといけないですが、大体できるはずです。
ただ、タイミングはcopyとpasteのタイミングだけです。

ID:rHf2rI

回答ありがとうございます。頂いた回答を見ると意図したことが上手く伝わっていなかったようです。


  • 取得したいのはテキストエリアに入力されている全ての文字列ではなく、ペーストされた文字列のみです。つまり、テキストエリアに既存の文字列があり、そこに新たな文字列がペーストされた場合に、そのペーストされた文字列のみを取得したいということです。

  • eventオブジェクトが持っているキーを知りたいというのは、イベント毎にeventオブジェクトが持つキーが異なるのかなと思っていたのですが、そうではないみたいですね。全てのイベントで同一のキーを持っているのかな。特定のウェブページで発生しているイベントのキーと値を知りたいという意味合いで書いていた訳ではなかったです。

  • pasteイベント発生時に対応するというのは勿論わかってるのですが、その具体的な方法についての質問となります。
ID:rHf2rI

event.originalEvent.dataTransferでdataTransferクラスにアクセスしてgetData(type)でクリップボードのテキストを参照出来るらしいのですが、console.logで出力しても空文字が出力されるんですよね。chrome環境で確認しているのですが、なんででしょ。。。

ID:rHf2rI

event.originalEvent.clipboardDataもダメですね。

ID:qqhiK2

chromeだとエクステンションからしかまだ出来なかったんじゃないかな。
もしくは設定で許可のフラグをたてるとか

ID:gLJ.tS

そんなことはないです。

ID:ewTnD7 さんの回答

簡単にできる方法はないよ

ID:ANJI/X

ありました

ID:gLJ.tS さんの回答

解決しました

最終更新日:2016-03-04 (10,551 views)

関連するトピックス

ページ上部に戻る