2011-05-21 18 views
7

मैं एक क्रोम ब्राउज़र एक्सटेंशन विकसित कर रहा हूं जो पृष्ठ पर हर जगह & ड्रॉप प्रकार की ऑपरेशन को अनुमति देता है। हालांकि, जब उपयोगकर्ता इस ऑपरेशन को निष्पादित करता है तो कर्सर आमतौर पर पाठ कर्सर में बदल जाता है।जावास्क्रिप्ट: वेबसाइट पर ड्रैग और ड्रॉप ऑपरेशन के दौरान मैं कर्सर कैसे सेट कर सकता हूं?

मैं उस व्यवहार को कैसे बदल सकता हूं? सीएसएस कर्सर प्रॉपर्टी केवल तभी लगती है जब आप माउस बटन को नीचे नहीं रखते हैं।

पीएस: चूंकि, मैं Google क्रोम के लिए एक एक्सटेंशन विकसित कर रहा हूं, अन्य ब्राउज़र मुझसे कोई फर्क नहीं पड़ता।

+0

आप आप क्या बारे में अधिक जानकारी प्रदान कर सकें कर रहे हैं और आप इसे कैसे कर रहे हैं। मेरे अनुभव में, सीएसएस कर्सर संपत्ति बिल्कुल माउस-बटन स्थिति के बावजूद समान दिखती है। – Sparky

+1

@ स्पार्की: कम से कम क्रोम में, जब आप प्राथमिक माउस बटन दबाते हैं और "ड्रैग" करते हैं, तो कर्सर "आई-बीम" में बदल जाता है। मुझे लगता है कि @ वेवॉल्फ इस सम्मेलन को ओवरराइड करना चाहता है। – Jeremy

+1

@ जेरेमी यह बिल्कुल समस्या है। – eWolf

उत्तर

2

क्या आप शरीर टैग में एक सीएसएस कक्षा जोड़ सकते हैं, जो कर्सर सेट करता है, फिर ड्रॉप पर कक्षा से हटा देता है?

+0

जोखिम भरा। यदि ड्रॉप ऑपरेशन अपेक्षित नहीं होगा (खिड़की, बग या कुछ और के बाहर) तो कर्सर बस वहां रहेगा। –

3

बस "selectstart" ... समारोह में रहते हुए घटना को रद्द करने के साथ ही "dragstart" संदेश हैंडलर ओवरराइड ...

<script type="text/ecmascript> 
window.addEventListener("dragstart", function(fEventObject){ CancelEvent(fEventObject); }); 
window.addEventListener("selectstart", function(fEventObject){ CancelEvent(fEventObject); }); 

function CancelEvent(fEventObject) 
{ 
    if (fEventObject.preventDefault) fEventObject.preventDefault(); 
    if (fEventObject.cancel != null) fEventObject.cancel = true; 
} 

</script> 
+1

दिलचस्प जवाब! क्या आपको पता है कि यह शुरू होने के बाद घटना को रद्द करना भी संभव है? जब तक मेरा एक्सटेंशन सक्रिय नहीं हो जाता है, तब तक मैं पेज पर ड्रैग और ड्रॉप और चयन छोड़ना चाहता हूं, जो चलने के बिना माउस को आधा सेकेंड तक दबाकर होता है। – eWolf

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