我跑了一个快速的谷歌搜索和搜索,发现了类似的问题,但没有一个很好的形成,大多数都是旧的,看起来被遗弃(没有答案,一段时间没有评论)。所以这里......
我希望能够收集从另一个网站上放到我网站上的图片的网址(只有网址)..(即我打开了两个镀铬窗口。窗口A有我的应用程序。窗口B有我点了一下。我打开一个图像点击并将其拖到我的窗口然后放开。现在我需要知道我页面上丢失的图像的网址。
以下是我正在处理本地文件的代码。
$(document).on('drop', function(e) {
var data = e.dataTransfer || e.originalEvent.dataTransfer;
console.log(data); // data.files is empty
e.preventDefault();
return false;
});
我再也不想上传任何东西..我不是想做任何花哨的事情......我只需要知道从另一个网站上删除图像的位置。
答案 0 :(得分:19)
试试这个:http://jsfiddle.net/2Jet2/70/
$(document).on('dragover', function(e) {
e.preventDefault();
});
$(document).on('drop', function(e) {
e.preventDefault();
e.originalEvent.dataTransfer.items[0].getAsString(function(url){
alert(url);
});
});
我得到"http://static3.flattr.net/thing/image/9/4/5/5/0/huge.png?1326712342"
当我从另一个浏览器窗口拖动该图像时。
.getAsString
接受一个回调,一旦调用它就会将url作为参数
不适用于firefox
答案 1 :(得分:6)
您可以使用此
$(document).bind('drop', function (e) {
var url = $(e.originalEvent.dataTransfer.getData('text/html')).filter('img').attr('src');
if (url) {
jQuery('<img/>', {
src: url,
alt: "resim"
}).appendTo('#yourId');
}
return false;
})
答案 2 :(得分:2)
根据尤努斯的回答,这似乎适用于FF:
e.originalEvent.dataTransfer.getData('text/html').match(/src\s*=\s*"(.+?)"/)[1]