2012-03-02 13 views
23

मैं वर्तमान में एचटीएमएल 5 ड्रैग और ड्रॉप एपीआई का उपयोग करके काम पर एक परियोजना पर काम कर रहा हूं ताकि अतिरिक्त कार्यक्षमता प्रदान की जा सके जिसमें ब्राउज़रों के अंदर और बाहर आइटम खींचें। मैं वर्तमान में उन मुद्दों पर आ रहा हूं जो क्रोम के लिए विशिष्ट हैं (अन्यथा केवल फ़ायरफ़ॉक्स में परीक्षण किया जाता है, जो अपेक्षा के अनुसार काम करता है)।एचटीएमएल 5 खींचें और ड्रॉप GetData() केवल क्रोम में ड्रॉप इवेंट पर काम करता है?

समस्या यह है कि ईवेंट को छोड़कर dragstart ईवेंट पर डेटा सेट को वापस करने के लिए मैं event.dataTransfer.getData(type) विधि का उपयोग नहीं कर सकता।

मैं तो जैसे इवेंट सेट, dragstart घटना के लिए बाध्य (जो आग है) के बाद:

event.dataTransfer.setData('text/plain', "some string") 

फिर drop घटना में, मैं डेटा ठीक हो सकता है।

event.dataTransfer.getData('text/plain') 

हालांकि मैं (जैसे dragover के रूप में) किसी भी अन्य घटनाओं पर जैसा कि ऊपर एक ही विधि का उपयोग नहीं कर सकते। भले ही मैं setData() (यानी dragstart कॉलबैक में) कॉल करने के बाद उपरोक्त विधि को लाइन पर आज़माएं और उपयोग करें, फिर भी यह undefined वापस आ जाएगा।

तो, क्रोम में, समस्या यह है कि getData क्रोम में वापस आ जाएगा, drop ईवेंट कॉलबैक के अलावा। (फ़ायरफ़ॉक्स में, मैं सफलतापूर्वक सही डेटा प्राप्त कर सकता हूं।)

यदि आपके पास dataTransfer समान ड्रैगिंग तत्व का ऑब्जेक्ट है, तो आपको डेटा को तब तक क्यों नहीं मिलना चाहिए जब तक इसे गिराया न जाए?

बस सोच:

  • किसी को भी क्रोम से पहले के साथ इस मुसीबत हुआ है?
  • क्या कामकाज हैं?
  • या, क्या क्रोम को ठीक करने की ज़रूरत है?

संसाधन: Specification for HTML5 drag and drop.

+0

[यह बग रिपोर्ट] (http://code.google.com/p/chromium/issues/detail?id=94023) संबंधित प्रतीत होता है। – pimvdb

+0

[एचटीएमएल 5 डीएनडी डेटा ट्रांसफर सेटडाटा या फ़ायरफ़ॉक्स को छोड़कर हर ब्राउज़र में GetData काम नहीं कर रहा है] का संभावित डुप्लिकेट [http://stackoverflow.com/questions/11927309/html5-dnd-datatransfer-setdata-or-getdata-not-working-in- हर ब्राउज़र-को छोड़कर-फाई) – broofa

उत्तर

21

वेबकिट, और इसलिए क्रोम, जब आप getData कॉल कर सकते हैं पर काफी सीमित है। आपको dragstart or dragover के अंदर ऐसा करने की अनुमति नहीं है। मुझे लगता है कि this is the canonical bug

+2

अभी भी क्रोम में काम नहीं करता है। संस्करण 48 – Lombas

+0

@ लोम्बास यह काम करना चाहिए, क्योंकि बग की स्थिति 2013-03-22 के रूप में तय की गई है –

1

this answer संदर्भित:

डेटा ड्रॉप पर ही उपलब्ध है, यह एक सुरक्षा सुविधा है जब आप वेब पेज भर में कुछ खींच जा करने के लिए होता है के बाद से एक वेबसाइट डेटा हड़पने सकता है।

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