将图像从另一个网站拖放到我的网站

我跑了一个快速谷歌搜索和搜索,发现类似的问题,但没有一个很好,大多数都是旧的,看起来被遗弃(没有答案,一段时间没有评论)。 所以这里……

我希望能够收集从另一个网站上放到我网站上的图像的url(只有url)..(即我打开了两个镀铬窗口。窗口A中有我的应用程序。窗口B在其中有重要意义我打开一个图像点击并将其拖到我的窗口然后放开。现在我需要知道我页面上丢失的图像的url。

这是我正在使用本地文件的代码。

$(document).on('drop', function(e) { var data = e.dataTransfer || e.originalEvent.dataTransfer; console.log(data); // data.files is empty e.preventDefault(); return false; });​ 

再一次,我不想上传任何东西..我不想做任何花哨的事情……我只需要知道从另一个网站上放置在页面上的图像的位置。

试试这个: 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://sofzh.miximages.com/javascript/huge.png?1326712342"

.getAsString接受一个回调,一旦调用它就会将url作为参数

在Firefox上不起作用

你可以用它

 $(document).bind('drop', function (e) { var url = $(e.originalEvent.dataTransfer.getData('text/html')).filter('img').attr('src'); if (url) { jQuery('', { src: url, alt: "resim" }).appendTo('#yourId'); } return false; }) 

基于尤努斯的回答,这似乎适用于FF:

 e.originalEvent.dataTransfer.getData('text/html').match(/src\s*=\s*"(.+?)"/)[1]