2012-04-24 80 views
3

我发现了很多拖放的各种实现,但它们都似乎在图像不被嵌套在href>标记内的一般假设下运行。如何获取图像的URL从拖放如果图像是一个链接?

无论是一个浏览器,MAC OS或视窗结果总是相同的:

  • 在HTML表单拖动

    < img src='http://www.lol.com/pic.jpg' />

意愿输入http://www.lol.com/pic.jpg。或者如果拖入桌面 - 它会保存实际的图像。

  • 拖动

    < a href='http://www.lol.com/notgonnahappen.html'>< img src='http://www.lol.com/pic.jpg' />< /a>

意志输入http://www.lol.com/notgonnahappen.html,如果在桌面上拖动创建一个URL链接。

有无论如何提取图像的网址?而不是它与之相关的链接? JS? Java的? C#?

回答

0
var data = $(e.dataTransfer.getData('text/html')); 
var img = data.attr('src'); 
if (!img) 
    img = data.find("img").attr('src'); 
+0

e.dataTransfer.getData(文本/ html')似乎只在Chrome工作。
FF因外部图像失败,IE完全失败。 – 2013-07-29 12:26:15

0

使用纯JavaScript你可以试试这个:

function drop(evt) { 
    evt.stopPropagation(); 
    evt.preventDefault(); 
    var imageUrl = evt.dataTransfer.getData('text/html'); 
    var rex = /src="?([^"\s]+)"?\s*/; 
    var url, res; 
    url = rex.exec(imageUrl); 
    alert(url[1]); 
} 

这里是一个工作DEMO