我需要能够将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')
答案 0 :(得分:1)
有趣的问题。我相信这 可能;但我确实认为存在一些局限性。
据我所知,大多数平台/浏览器在拖放文本内容方面的行为方式类似(无论是原始文本,网址,“炸鱼薯条”等等)。一旦你“将“某些文本放入文本框,文本框将填充该内容。因此,您可以指示您的用户将链接/文本放到特定的textarea ...
关于检测丢弃的时间,我认为您必须依靠setInterval
方法检查某个文本框的值/内容,以了解何时插入了有效的URL。
*现在关于限制 - 我不知道(在我的头脑中)这个功能确实是普遍的,但我相信这是所有“主要”的标准功能浏览器,它不涉及平台。
* 很想从更有学问的人那里得到一些确认。
答案 1 :(得分:0)
使用setInterval概念改进Lix的解决方案:不要执行setInterval,因为它会不断重复,而是添加具有单个超时的drop监听器,如下所示:
Dim IE as SHDocVw.InternetExplorer
Set IE = New InternetExplorerMedium
答案 2 :(得分:-2)
我认为,对于您的情况,您必须为浏览器创建插件或扩展程序。
只要您将网址放到浏览器地址元素中,网页就会被加载,您的JavaScript也无法运行。