3

URL を (ブラウザの URL バーから) Web ページにドラッグ アンド ドロップし、そのリンクを使用して Web サービスにリクエストを送信し、JSON 応答を受け取ってフォームに入力する機能が必要です。

リンクを処理する Web サービスを作成でき、jQuery.ajax を使用してリクエストを作成できましたが、ドロップされたリンクを操作する方法がわかりません。

誰かがこれの例を教えてもらえますか? 何を使えばいいですか?

編集:

「ドロップ」を使用して ajax クエリを起動できましたが、ドロップした URL の値を取得する方法がわかりません。これが私のコードです:

jQuery(function() {
$("input").bind("drop", function(e){
        var val = e.dataTransfer.getData('Text')
        $.ajax({
        type: 'GET',
        url: 'http://dev.null:8888/gud/',
        data: 'url=' + val,
        dataType: 'json',
        success: function(jsonData) {
          alert(jsonData);
        },
        error: function (xhr, ajaxOptions, thrownError){
          alert("this isnt working");
        },                              
      });
    });
  });

これで URL の値にアクセスできると思ったe.dataTransfer.getData('Text')のですが、そうではありません。その値にアクセスする方法を知っている人はいますか?

それを見つけた。それはe.originalEvent.dataTransfer.getData('Text')

4

3 に答える 3

1

興味深い質問です。これは可能だと思います。ただし、いくつかの制限の可能性があると思います。

私の知る限り、ほとんどのプラットフォーム/ブラウザは、テキスト コンテンツのドラッグ アンド ドロップに関して同様の動作をします (生のテキスト、URL、「フィッシュ アンド チップス」など)。テキストをテキストボックスに入れると、テキストボックスにそのコンテンツが取り込まれます。したがって、リンク/テキストを特定のテキストエリアにドロップするようにユーザーに指示できます...

setIntervalドロップがいつ発生したかを検出することに関しては、特定のテキストボックスの値/内容をチェックして、有効な URL がいつ挿入されたかを知る方法に頼る必要があると思います。


* 制限について - この機能が実際に普遍的であるかどうかはわかりませんが、これはすべての「主要な」ブラウザの標準機能であり、関与していないと思いますプラットフォーム。

*詳しい方からの確認をお待ちしております。

于 2012-06-20T16:57:11.870 に答える
1

setInterval の概念を使用して Lix のソリューションを改善するには: setInterval を繰り返さないでください。代わりに、次のように単一のタイムアウトを持つドロップ リスナーを追加します。

var $t=$('textarea');
$t.on('drop',(event)=>{
  setTimeout(()=>{alert(event.target.value);},0);
});
于 2019-04-25T07:19:28.520 に答える
-3

あなたの場合、ブラウザ用のプラグインまたは拡張機能を作成する必要があると思います。

URL をブラウザーのアドレス要素にドロップするとすぐに、ページが読み込まれ、JavaScript は実行されません。

于 2012-06-20T16:53:39.667 に答える