13

के साथ किसी अन्य तत्व के पीछे पाठ का चयन करना मेरे पास एक परिदृश्य है जहां मेरे पास कुछ टेक्स्ट है, जो उपयोगकर्ता-चयन योग्य होना चाहिए। समस्या यह है कि इसके ऊपर एक यूआई ओवरले है, जो डिफ़ॉल्ट रूप से टेक्स्ट का चयन रोकता है। ओवरले रखने के लिए तार्किक तरीका और अभी भी टेक्स्ट का चयन करने में सक्षम होना, सिंथेटिक घटनाओं का उपयोग करना होगा (document.createEvent का उपयोग करें), लेकिन किसी कारण से, यह अपेक्षा के अनुसार काम नहीं करता है।createEvent

घटनाओं को सही ढंग से प्रतिनिधिमंडल में प्रतीत किया जाता है और उनके हैंडलर को आग लगती है, लेकिन कोई टेक्स्ट नहीं चुना जाता है। मेरे पास एक उदाहरण here है, जो समस्या का एक कठिन सरलीकरण है।

कुछ नोट्स

  1. एफएफ में यदि आप ओवरले के बाहर अपने चयन शुरू करते हैं, तो आप अभी भी पाठ आप चाहते हैं का चयन करने में सक्षम हैं, भले ही वह ओवरले
  2. जब आप एक सामान्य है के अंतर्गत है खुला क्षेत्र में चयन और आप ओवरले पर क्लिक करके, यह चयन को दूर करने के प्रत्यायोजित mousedown घटना से अपेक्षा की जाती है, लेकिन यह नहीं होता है

Am मैं एक घटना है कि यह भी सौंप दिया जाना चाहिए (मुझे याद आ रहीहै, mousemove और mouseup)? या ब्राउज़र के द्वारा इस तरह के व्यवहार को अक्षम करने के लिए यह किसी प्रकार का सुरक्षा उपाय है (नोट एनआर 2 देखें)? वांछित परिणाम कैसे प्राप्त करें इस पर कोई अन्य सुझाव? मुझे पता है कि मुझे वर्तमान ओवरले समाधान के आसपास पूरी तरह से काम करना चाहिए, लेकिन मैं खुद ही समस्या के बारे में उत्सुक हूं।

उत्तर

7

मैं इस समस्या के लिए दो समाधान पाया है आसपास के साइड इफेक्ट:

  1. "सूचक-ईवेंट" सीएसएस संपत्ति। हालांकि आईई 9.0+ की आवश्यकता है।
  2. ExtJS से लोगों की तरह लगता है घटना अग्रेषण द्वारा इसे हल: demo, source, blog post
2

मैं आसान चाल करने का सुझाव दूंगा: पारदर्शी तत्व को वही सामग्री के साथ टेक्स्ट के अपने शीर्ष पर और ओवरले के रूप में रखें। यहां demonstration है।

पीएस .: मेरे अनुभव से आपके द्वारा सुझाए गए फॉर्म में कोई भी समाधान भयानक होगा। यह ब्राउज़र असंगतियां से भुगतना होगा, मार्क-अप और स्टाइल आदि

+0

तकनीकी तौर पर, createEvent पूरी तरह से पार ब्राउज़र होना चाहिए और मैं नहीं दिख रहा है कि कैसे स्टाइल, देशी ब्राउज़र के व्यवहार को प्रभावित कर सकता है जो करना चाहिए देशी और सिंथेटिक घटनाओं दोनों के समान हो। – zatatatata