2016-02-12 5 views
9

में टेक्स्ट सामग्री को सेट या प्रतिस्थापित करें, मैं क्रोम एक्सटेंशन विकसित कर रहा हूं, जिससे उपयोगकर्ता इसे भेजने से पहले अपने फेसबुक चैट संदेश के टेक्स्ट को प्रतिस्थापित कर सकता है।फेसबुक की चैट

उदाहरण के लिए, उपयोगकर्ता प्रकार "नमस्ते वहाँ", मैं उन्हें साथ चैट इनपुट क्षेत्र को बदलने के लिए अनुमति देना चाहते हैं "वहाँ हैलो", और उपयोगकर्ता के लिए इसे छोड़ बदल भेजने के लिए संदेश।

समस्या है कि मैं संपादन इनपुट के textContent विशेषता के आधार पर पाठ को बदलने में सक्षम है, लेकिन बातचीत विजेट परिवर्तन के बारे में पता नहीं है, शायद इसलिए क्योंकि सही घटनाओं नहीं है निकाल दिया गया, इसलिए जब मैं परिवर्तित संदेश भेजने के लिए एंटर दबाता हूं तो कुछ भी नहीं होता है। इसके अतिरिक्त, मैं माउस और न ही कीबोर्ड के साथ परिवर्तित टेक्स्ट को हटाने में सक्षम नहीं हूं।

मैंने कीबोर्ड इनपुट अनुकरण करने की कोशिश की है, लेकिन कोई सफलता नहीं है। मैं एक ऐसे समाधान समाधान को स्वीकार करने के लिए खुला हूं जिसमें वह शामिल है।

मेरा प्रश्न है, चैट चैट फ़ील्ड में टेक्स्ट को कैसे प्रतिस्थापित किया जाए ताकि चैट विजेट इसका पता लगा सके और उसे स्वीकार कर सके?

नोट: मैं jQuery का उपयोग नहीं कर रहा हूं, इसलिए मैं उन समाधानों को पसंद करूंगा जो इसका उपयोग नहीं करते हैं।

+1

मुझे नहीं पता कि आप इसमें कैसे हुक सकते हैं, लेकिन फेसबुक प्रतिक्रिया का उपयोग कर रहा है, जो घटनाओं को कैप्चर कर रहा है और आपके द्वारा देखे गए HTML आउटपुट हैं। –

+1

मैंने बिताया * waaay * यह पता लगाने की कोशिश कर रहा है। यह असंभव नहीं है, लेकिन 1) यह बहुत कठिन है और 2) यदि फेसबुक अपना कोड बदलता है, तो आपका विजेट टूट जाएगा और 3) यदि फेसबुक कभी भी उत्पादन में डेवेटोल हुक बंद कर देता है, तो आपको कोई उम्मीद नहीं है। आप मूल रूप से 'विंडो का उपयोग करना चाहते हैं .__ REACT_DEVTOOLS_GLOBAL_HOOK __। ReactDevtoolsAgent' ऑब्जेक्ट, प्रतिक्रिया घटक उदाहरण कहीं पर है लेकिन यह खोजना बहुत मुश्किल है। मैं डीओएम तत्व पा सकता हूं लेकिन उदाहरण नहीं। एक बार जब आप इंस्टेंस प्राप्त कर लेते हैं तो आप ऑनकेप इवेंट या कुछ ट्रिगर कर सकते हैं। यह एक दुर्बल समस्या है। – EugeneZ

+0

@miniml मेरे पास फेसबुक नहीं है इसलिए यह आपके लिए देखने के लिए संघर्ष करेगा ... क्या कोई प्रकार का सैंडबॉक्स या जेएसफ़ील्ड-एस्क्यू पर्यावरण है जिसमें मैं परीक्षण कर सकता हूं? – Marvin

उत्तर

5

इस मैं अंत में पता लगा है कि संपादन योग्य तत्व करने के लिए एक textInput घटना भेजने के अपने पाठ को बदल सकते हैं, और सभी React.js घटनाओं को ट्रिगर किया जाएगा पर बहुत अधिक समय खर्च करने के बाद।

var setText = function(el, text) { 
    var te = document.createEvent('TextEvent'); 
    te.initTextEvent('textInput', true, true, window, text); 
    el.dispatchEvent(te); 
} 

मैं कुछ इसी तरह की कोशिश की थी इससे पहले, लेकिन मैं input घटना, जो जाहिरा तौर पर वेबकिट और क्रोम में काम नहीं करता भेज रही थी।

उन सभी लोगों के लिए धन्यवाद जिन्होंने भाग लिया और मदद करने की कोशिश की!

+0

धन्यवाद यह सहायक है, मैंने थोड़ी देर के लिए छोड़ दिया था – r14n

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