我有一个拖放功能来处理Web和本地文件上传。本地文件拖动n' drop在chrome和firefox中运行正常,但是IE给了我以下错误'无法获得' 0'未定义或空引用'。下面是我的JS for drop action。 IE指向我的if语句的开头作为问题的原因。我错过了某种类型的API,或者我必须申报IE才能工作吗?
$("#blightImgBack").on('drop', function(e) {
debugger;
console.log('on drop');
if (e.originalEvent.dataTransfer.items[0].kind === 'file') {
console.log('local file');
imageLoaderBack = document.getElementById('blightImgBack');
imageLoaderBack.addEventListener('change', handleBackImage);
function handleBackImage(e) {
console.log('function fired');
e.preventDefault();
var reader = new FileReader();
reader.onload = function (event) {
console.log('updating src');
$('#backImgUploader img').fadeOut(200, function() {
$('#backImgUploader img').attr('src',event.target.result);
$('#backImgUploader img').fadeIn(300);
});
};
reader.readAsDataURL(e.target.files[0]);
}
} else if (e.originalEvent.dataTransfer.items[0].kind === 'string') {
e.preventDefault();
e.originalEvent.dataTransfer.items[0].getAsString(function (url) {
$('#backImgUploader img').fadeOut(200, function() {
$('#backImgUploader img').attr('src', url);
$('#backImgUploader img').fadeIn(300);
});
});
}
});
答案 0 :(得分:1)
根据下表,即使在Edge上,HTML5拖放IE中的支持也是粗略的。我无法在MSDN上找到有关特定浏览器支持的相关信息,但我的猜测是static class RegexLib
{
static Regex CreateInstString(){
{
return new Regex("YourRegex");
}
static Regex CreateUserdataString(){
{
return new Regex("YourOtherRegex");
}
[..]
}
甚至不存在于IE 11上(我认为它只需要一个项目,请阅读github页面下方):
http://caniuse.com/#feat=dragndrop
https://github.com/elsix/angular-jointjs-graph-demo/issues/5
答案 1 :(得分:-1)
我制作了一个CodePen:https://codepen.io/Brianmanden/pen/NpqBwZ
我添加了几行来实现它:
$("#blightImgBack").on("dragover", false);
..和
$("#blightImgBack").on('drop', function(e) {
e.preventDefault();
e.stopPropagation();
...
}
我在这里找到了我需要的信息:enter link description here
让我们发布您的进度伙伴:)