javascript – 拖放图像,而不是窗口之间的链接 – HTML5
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 拖放图像,而不是窗口之间的链接 – HTML5,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2028字,纯文字阅读大概需要3分钟。
内容图文
我正在尝试在HTML5中进行拖放上传,并且要求能够使用我不拥有且无法编辑的其他网站(主要是图像)拖动的文件.
在这种情况下,在ondrop事件中,不是使用e.dataTransfer.files从本地计算机下载图像并发布它,而是使用e.dataTransfer.getData(‘URL’)检索URL并将其发布到服务器它下载服务器端.
除非我拖动链接中包含的图像,否则会产生罚款.
它在从< img>启动拖动时起作用.元素,但没有< img>包含在< a>中.元件.在后者中,e.dataTransfer.getData(‘URL’)给出了链接的href,而不是图像的src.
我查看了e.dataTransfer.getData()以查看它是否接受了其他可能有帮助的参数.另一种选择是“文本”,它带来与“URL”相同的结果.
有没有办法获取图像URL或者我注定了,因为浏览器在拖动链接中包含的图像时不会实际携带图像URL(即:我拖动链接,而不是图像)?
UPDATE
为了说明我在这里创建了一个jsfiddle:https://jsfiddle.net/2m58rfou/
另有一个有2张图片来证明我的问题:https://jsfiddle.net/870asboa/
在单独的选项卡中打开它们,然后尝试拖放放置区中的两个图像.
有了第一张图片,我得到了我想要的东西:https://www.gstatic.com/webp/gallery/1.sm.jpg
第二个是http://www.google.com/,图片所在的链接,而不是图片地址.
在第二种情况下,有没有办法获取图像地址而不是ondrop监听器中的链接,或者它是不可能的? (记住图像可以在任何网站上,我无法捕捉任何dragstart事件,基本上只有掉落一个).
解决方法:
在dragover事件处理程序中,迭代event.dataTransfer.types
The
DataTransfer.types
read-only property is an array of the drag
data formats (as strings) that were set in thedragstart
event. The
order of the formats is the same order as the data included in the
drag operation.
该数组包含三种类型:
> text / plain
> text / uri-list
> text / html
text / html是拖动的< img>的html字符串.元件.
通过将“text / html”传递给.getData()来获取字符串,然后使用RegExp提取html字符串的src或创建一个元素并将html字符串附加到元素,然后得到< img>的src.元素使用.src.
holder.ondrop = function (e) {
e.preventDefault();
this.className = '';
var img = e.dataTransfer.getData("text/html");
var div = document.createElement("div");
div.innerHTML = img;
var src = div.firstChild.src;
console.log(div.firstChild, src);
results.innerText = src;
}
jsfiddle https://jsfiddle.net/2m58rfou/6/
内容总结
以上是互联网集市为您收集整理的javascript – 拖放图像,而不是窗口之间的链接 – HTML5全部内容,希望文章能够帮你解决javascript – 拖放图像,而不是窗口之间的链接 – HTML5所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。