0

私はすべてを試しましたが、この 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 で動作します。何が問題ですか?

4

1 に答える 1

1

エラーが見つかりました。ランダムに見えますが (おそらくバグでしょうか?)、setTimeout 呼び出しでした。それをコメントアウトすると、うまくいきます!

于 2013-03-15T04:13:53.243 に答える