我在下面有这个javascript代码,我想为图像文件制作混合输入法:删除它并通过文件浏览器选择。
drop完美无缺,但如果您尝试使用文件资源管理器上传文件,则无法显示。我认为是imgLoad()
内部的东西,因为当我在更改事件中运行它时不加载,无论我怎么推(甚至使用不同的函数调用方法)。
var obje=document.getElementById('toDrop');
var fileDoor=document.getElementById('fileImg');
obje.ondragover=function(ev) { ev.preventDefault();}
obje.ondrop=function imgLoad(eve) {
eve.preventDefault();
var fil=new FileReader();
fil.onload=function(ev) { document.getElementById('toDrop').style.backgroundImage="url('"+ev.target.result+"')";
}
fil.readAsDataURL(eve.dataTransfer.files[0]);
}
fileDoor.onchange=imgLoad();
答案 0 :(得分:1)
imgLoad
不是Javascript at Question的全局定义函数。您还在imgLoad
处立即致电fileDoor.onchange=imgLoad()
,而不是引用功能fileDoor.onchange=imgLoad
。
change
事件没有.dataTransfer
属性。使用OR event.dataTransfer.files
运算符处理event.target.files
处理程序中的imgLoad
或||
。
调整HTML
以将<input type="file">
元素用作drop
事件目标。将<input type="file">
元素CSS
设置为同一width
和height
作为父元素,将opacity
设置为0
,将position
设置为{{ 1}},absolute
设置为父元素top
.ingConf
值
top