我已尝试过所有内容,而且这个javascript代码不起作用:
document.addEventListener('DOMContentLoaded',function(e){
console.log('kk');
var box=document.getElementById('box');
var body=document.getElementsByTagName('body')[0];
setTimeout(document.getElementById('msgline').style.opacity=1,1000);
body.addEventListener('dragenter',function(e){
console.log('kkkkkkk!');
box.style.transform=box.style.webkitTransform='rotateX(-20deg) rotateY(180deg)';
enters++;
e.preventDefault();
return false;
});
body.addEventListener('dragover',function(e){e.preventDefault(); return false;});
body.addEventListener('dragleave',function(e){
if(--enters===0)
box.style.transform=box.style.webkitTransform='rotateX(-20deg)';
});
body.addEventListener('drop',function(e){
var files=e.dataTransfer.files;
[].forEach.call(files,function(file){
convertToMOSTEM(file);
}
);
e.preventDefault();
return false;
});
});
至少不在Firefox中。它用于在body
上注册事件处理程序以获取html5拖动。当你拖动身体时,它应该为box
应用一些样式,并在dragleave上删除它们。每当文件被删除时,它也应该调用convertToMOSTEM
。它将kk记录到控制台,这意味着DOMContentLoaded
内的代码已被执行。但是,它永远不会动画框或日志kkkkkkkk!我拖动或离开时到控制台,当我放下它时尝试打开文件。我很确定永远不会定义事件处理程序。它适用于Safari和Chrome。有什么问题?
答案 0 :(得分:1)
我发现了错误。它似乎是随机的(甚至可能是一个bug?),但它是setTimeout调用。评论它,它工作正常!