質問

必要なのは、テキストがTextareaにドロップされたことを検出できることです。それからそのテキストを取り、それを使ってテキストエリアをクリアします。これらのテキストエリアの多くがあり、UIの期待が非常に高いため、ポーリングは最後の手段です。

IEの場合、<!> quot; onfocus <!> quot;ユーザーがテキストエリアにアイテムをドロップした後にこのイベントが発生するため、トリックを行います。

Firefoxの場合、機能するイベントが見つかりません。私はonmouseupとonchangeを試しました。そこから他に何を試すべきかわかりません。コンテンツのtextareaをポーリングする必要はありません。感謝します。ありがとう。

編集:説明のため、<!> quot; dropped <!> quot;は、ユーザーがページからテキストを(通常)選択することを意味しますが、どこでも問題ないので、テキストエリアにドラッグしてドロップします。これは、Ctrl + V、右クリック貼り付け(2つの異なる検出方法、BTWを使用)、または(明らかに)テキスト領域への入力とは異なります。具体的には、<!> quot; drop <!> quot;です。ドラッグアンドドロップの側面。他にどのように表現するのか本当にわかりません。

この質問はかなり正確に述べられていると思います。ユーモアを交えて、共有することを選択したテキストエリアでの他の操作を意味すると仮定します。 <!> quot; pasting <!> quot;を意味する場合、質問のタイトルまたは内容に貼り付けることについて何かに言及したと思いませんか?テキストエリアでのタイピングについても同様です。しかし、おそらく、あなたはすべて、私が意味することを多少関係するだけのものを誤って入力するのではなく、私が意味するものを入力することを知るほど十分に私を知らない。

役に立ちましたか?

解決 2

ポーリングが唯一の方法であるようです。

ブラウザ内でドラッグ+ドロップ操作が開始されると、進行中の他のすべてがキャンセルされるようです。 <!> quot; onmouseover <!> quot;を置くことでこれを目撃できます。ページ上の何かにイベントを追加し、DnD操作を開始してドラッグします。イベントは発生しません。

ブラウザが内部的に<!> quot;ドラッグアンドドロップ<!> quot;を処理する方法は偶然の一致にすぎません。 IEおよびSafariのtextareaでonfocus()が起動されること。 W3仕様には多くの定義があるとは思いませんが、それは重要なことではなく、W3はがらくたであり、誰もそれに完全に固執しているわけではありません。

質問のたびに、使用するたびにtextareaを空にする贅沢を述べたので、textarea.value.length <!> gt; 0のポーリングはほとんどコストがかからず、パフォーマンスはそれほど高くないはずです懸念事項。

しかし、残念ながら、特にテキストエリアにコンテンツをドロップすることに関係しています。

ダウンモッドで痛みを和らげます。

他のヒント

Firefoxの場合、これは私のために機能します:

window.addEventHandler("dragdrop", function(event) {alert("Drop it like it's hot!")}, true)

ただし、Safariでは機能しません。 IEを試していない。

テキストエリアをドロップ、貼り付け、または入力されたテキストに反応させる場合、唯一の解決策はボタンです。コンテンツをポーリングするタイマーでさえ役に立ちません。

ユーザーがテキストエリアにテキストを入力できるようにしたいと言っています。また、イベントが発生するたびにテキストをクリアすることを言及します。ブラウザがユーザーの入力が完了したことを知る方法はありません。特定のアクションに依存する必要があります。

ドロップまたは貼り付けの場合、それを検出するためにmouseupおよびkeyupイベントに依存できます。

<!> quot; droped <!> quot;とはどういう意味ですか?貼り付け(^ V)操作について話していますか?その場合、Aronの答えが実際に正しい場合、キーダウン/キーアップを取得します(キーアップで値が読み取り可能になります)。

入力の更新時に発生する一般的なコールバックは「onchange」です。試してみてください。入力時には、入力を終了してフォーカスを外すまで呼び出されないことに注意してください。したがって、入力と他の入力形式の両方で即時更新が必要な場合は、「onkeyup」も必要です。

再説明の編集:IMO 'onchange'は、ドラッグアンドドロップによってテキスト領域にコンテンツが追加されたときに起動する必要があります。私はそれがブラウザのバグであるとは考えていません(少なくともFirefoxでは)。この場合、ポーリングだけが残っていることに同意できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top