我正在开发一个使用拖放 API 来从各种网站收集资源的网络应用程序。
有了这个API,我打算解析拖拽资源的HTML,得到链接的URL和链接中的文字和图片。
它在 Firefox 19(Windows 和 Mac)上运行良好。它曾经可以在 Chrome 25 上运行,但自从最新更新以来,它在 Mac 26 的 Chrome 上无法运行,尽管它可以在 Windows 上运行。
这是我正在使用的代码片段——你可以在 jsfiddle 上试试:http: //jsfiddle.net/rYcyP/
document.getElementById("destination").addEventListener("dragover", function(_event) {
_event.stopPropagation();
_event.preventDefault();
}, false);
document.getElementById("destination").addEventListener("drop", function(_event) {
_event.stopPropagation();
_event.preventDefault();
console.log(Array.prototype.slice.call(_event.dataTransfer.types));
}, false);
当拖动嵌入图像的链接时,例如来自新闻网站(或 Stack Overflow 中的上述广告,或我的 gravatar),这是控制台在 Firefox 中读取的内容:
["text/x-moz-url", "text/x-moz-url-data", "text/x-moz-url-desc", "text/uri-list", "text/_moz_htmlcontext", "text/_moz_htmlinfo", "text/html", "text/plain", "application/x-moz-nativeimage", "application/x-moz-file-promise", "application/x-moz-file-promise-url", "application/x-moz-file-promise-dest-filename", "Files"]
这比我真正需要的数据多得多,但是 text/html 就在这里!
在 Chrome 26.0.1410.43 Windows 中:
["text/plain", "text/uri-list", "text/html", "Files"]
对我还是有好处的。
这是我在 MacOS X 上使用 Chrome 26.0.1410.43 得到的结果:
["text/uri-list"]
其中不包括我的网络应用程序所需的“文本/html”。
在此先感谢您的帮助 !