【问题标题】:How to get image URL from drag &drop if the image is a link?如果图像是链接,如何从拖放中获取图像 URL?
【发布时间】:2012-05-05 15:13:01
【问题描述】:

我发现了很多不同的拖放实现,但它们似乎都是在图像没有嵌套在 标记内的一般假设下运行的。

无论是浏览器、mac os还是windows,结果都是一样的:

  • 拖动一个

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

将以 html 形式输入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链接。

是否有提取图像 URL 的方法?而不是它所关联的链接? JS?爪哇? C#?

【问题讨论】:

    标签: image url drag-and-drop


    【解决方案1】:
    var data = $(e.dataTransfer.getData('text/html'));
    var img = data.attr('src');
    if (!img) 
        img = data.find("img").attr('src');
    

    【讨论】:

    • e.dataTransfer.getData('text/html') 似乎只在 Chrome 中有效。
      FF 使用外部图像失败,IE 完全失败。
    【解决方案2】:

    使用纯 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

    【讨论】:

      猜你喜欢
      • 2014-02-04
      • 2012-04-16
      • 2016-06-11
      • 2011-12-08
      • 1970-01-01
      • 2017-08-25
      • 1970-01-01
      • 2012-08-23
      • 2023-04-11
      相关资源
      最近更新 更多