将URL拖放到浏览器中并使用jQuery进行处理

时间:2012-06-20 16:48:00

标签: jquery url drag-and-drop

我需要能够将URL(从浏览器中的url栏)拖放到网页中,使用该链接向Web服务发出请求,并获取JSON回复并填充表单。

我已经能够创建处理链接的Web服务,并且我已经能够使用jQuery.ajax发出请求,但我不确定如何与丢弃的链接进行交互。

有人能指出我的一个例子吗?我该怎么用?

编辑:

我已经能够使用“drop”触发我的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");
        },                              
      });
    });
  });

我认为e.dataTransfer.getData('Text')会让我访问网址的值,但事实并非如此。有谁知道我如何获得这个价值?

找到它。它是e.originalEvent.dataTransfer.getData('Text')

3 个答案:

答案 0 :(得分:1)

有趣的问题。我相信这 可能;但我确实认为存在一些局限性。

据我所知,大多数平台/浏览器在拖放文本内容方面的行为方式类似(无论是原始文本,网址,“炸鱼薯条”等等)。一旦你“将“某些文本放入文本框,文本框将填充该内容。因此,您可以指示您的用户将链接/文本放到特定的textarea ...

关于检测丢弃的时间,我认为您必须依靠setInterval方法检查某个文本框的值/内容,以了解何时插入了有效的URL。


*现在关于限制 - 我不知道(在我的头脑中)这个功能确实是普遍的,但我相信这是所有“主要”的标准功能浏览器,它不涉及平台。

* 很想从更有学问的人那里得到一些确认。

答案 1 :(得分:0)

使用setInterval概念改进Lix的解决方案:不要执行setInterval,因为它会不断重复,而是添加具有单个超时的drop监听器,如下所示:

Dim IE as SHDocVw.InternetExplorer
Set IE = New InternetExplorerMedium

答案 2 :(得分:-2)

我认为,对于您的情况,您必须为浏览器创建插件或扩展程序。

只要您将网址放到浏览器地址元素中,网页就会被加载,您的JavaScript也无法运行。