2012-06-11 22 views
5

मैं फ़ायरफ़ॉक्स में फ़ाइल खींचने और ड्रॉप करने की कोशिश कर रहा हूं और शुरू करने के लिए बच्चे के कदम उठा रहा हूं। अभी, मैं बस कुछ फ़ाइलों को एक ड्रॉपज़ोन में खींचने की कोशिश कर रहा हूं और फ़ाइलों की एक सूची प्राप्त कर रहा हूं। इस बिंदु पर, मैं अभी तक फाइलों के साथ कुछ भी नहीं करना चाहता हूं।फ़ायरफ़ॉक्स में फ़ाइल खींचें और छोड़ें (v10)

जब मैं एक फ़ाइल खींचता हूं (इस मामले में एक छवि, लेकिन फ़ाइल प्रकार के बावजूद एक ही चीज़ होती है) खोजक से ड्रॉपज़ोन तक, मैं ड्रैगेंटर और ड्रैगक्सिट घटनाओं को फायरिंग देख सकता हूं। जब मैं ड्रॉपज़ोन में फ़ाइल को छोड़ देता हूं, तो ड्रॉप इवेंट फायरिंग नहीं होता है। इसके बजाए क्या होता है कि ब्राउजर छवि को स्वयं ही खोलता है (उदाहरण के लिए, पता फ़ाइल दिखा रहा है: //path/to/my/image.png)।

मेरे जावास्क्रिप्ट इस तरह दिखता है:

dropbox = document.getElementById("standard_file_dropzone"); 

    dropbox.addEventListener("dragenter", function(){console.log('standard enter');}, false); 
    dropbox.addEventListener("dragexit", function(){console.log('standard exit');}, false); 
    dropbox.addEventListener("dragover", $.noop, false); 
    dropbox.addEventListener("drop", function (event) { 
            console.log('standard dropped'); 
            event.stopPropagation(); 
            event.preventDefault(); 

            if((typeof event.dataTransfer.files !== 'undefined') && 
             (event.dataTransfer.files.length > 0)) { 
             console.dir(event.dataTransfer.files); 

            } 
            return false; 
            }, false); 

मेरे एचटीएमएल इस तरह दिखता है:

<div id="standard_file_dropzone" style="height:150px; width:150px; border:solid;"> 
     Standard Drop Files Here 
    </div> 

तो मैं सोच रहा हूँ मैं गलत यहाँ क्या कर रहा हूँ? उपरोक्त कोड के साथ कुछ भी गलत नहीं है (कम से कम मुझे स्पष्ट)। ड्रैगेंटर/निकास घटनाएं फायरिंग कर रही हैं, ड्रॉप इवेंट क्यों नहीं है? ब्राउजर फ़ाइल को खोलने की कोशिश क्यों कर रहा है?

ध्यान देने योग्य एक बात, जब मैं क्रोम में अपना पेज खोलता हूं, तो यह अपेक्षित काम कर रहा है, इसलिए यह फ़ायरफ़ॉक्स विशिष्ट समस्या है।

thnx, क्रिस्टोफ

उत्तर

5

मुद्दा dragover हैंडलर के रूप में $ .noop उपयोग कर रहा था। इसे एक ऐसे फ़ंक्शन के साथ बदलना जो वास्तव में प्रचार और बुलबुले को रोकता है, यह अपेक्षा के अनुसार काम करना शुरू कर देता है।

मैं कभी-कभी बेवकूफ हूं। : पी

+0

यह वास्तव में काम करता है, लेकिन यह वास्तव में मुझे स्पष्ट नहीं है कि यह स्पष्ट क्यों है? – Mark

+0

@ क्रिस्टोफ मुझे एक ही समस्या का सामना करना पड़ रहा है, क्या आप इसकी मदद कर सकते हैं। –

संबंधित मुद्दे