2008-08-13 7 views
10

मेरी ब्राउज़र-आधारित एप्लिकेशन में जो कुछ भी करना है, मैं उपयोगकर्ता को कुछ टेक्स्ट चुनने की अनुमति देता हूं (< टेक्स्टरेरा > में नहीं, केवल सादे ol 'टेक्स्ट !), और मेरा एप्लिकेशन एक छोटा टूलबार पॉप अप करता है जो उसके बाद अगले (मेरे मामले में, एनोटेशन जोड़ सकता है) के साथ बातचीत कर सकता है।ब्राउज़र में चयनित टेक्स्ट प्राप्त करना, क्रॉस-प्लेटफ़ॉर्म

मुझे लगता है कि WYSIWYG संपादक, लेखन पर ध्यान केंद्रित किया जा रहा है गूगल पर सामान का एक बहुत मिल गया है, लेकिन वह नहीं है कि मैं क्या चाहते हैं, और इसमें से अधिकांश आदर्श रूप में FF2 या 3. में IE में काम किया लेकिन नहीं , मुझे कुछ फ़ंक्शन चाहिए जो वर्तमान में चयनित ब्राउज़र को ब्राउज़र विंडो में वापस कर सकता है जो आईई 7 (और 6 संभव होने पर) में काम करता है, फ़ायरफ़ॉक्स 2 & 3 और सफारी 2। अगर यह ओपेरा में काम करता है, तो यह एक बोनस होगा, लेकिन यह एक आवश्यकता नहीं है।

किसी के पास कोई ऐसा कार्य है जो यह करता है? या कहां से शुरू करना है इसका विचार?

उत्तर

1

Introduction to Range पर कुछ विवरण हैं कि विभिन्न ब्राउज़रों से आप टेक्स्ट चयन तक कैसे पहुंच सकते हैं।

मेरा अनुभव यह है कि इन अलग-अलग एपीआई के साथ काम करना काफी बेकार है, इसलिए यदि wrapSelection आपके लिए काम करता है तो मैं उसके साथ जाऊंगा।

-1

चयन के संबंध में व्यक्तिगत ब्राउज़रों का व्यवहार outlined here है।

-3

इस कोड सफारी, IE और Firefox में काम करता है - यह कुछ मदद jQuery प्लगइन शांत है

var str = (window.getSelection) ? window.getSelection() : document.selection.createRange(); 
str = str.text || str; 
str = str + ''; // the best way to make object a string... 
14

यही की है उम्मीद है, लेकिन यह एक विशेष कार्य पूरा करता है: पाठ आप एक टैग के साथ प्रकाश डाला लपेट दें। यह वही हो सकता है जो आप चाहते हैं। लेकिन अगर आप नहीं करना चाहते हैं (या एक स्थिति है जहाँ आप नहीं कर सकते में हैं) अपने पृष्ठ के लिए किसी भी बाहरी मार्कअप जोड़ने, तो आप निम्न समाधान के बजाय कोशिश कर सकते हैं:

function getSelectedText() { 
    var txt = ''; 

    if (window.getSelection) { 
    txt = window.getSelection(); 
    } 
    else if (document.getSelection) { 
    txt = document.getSelection(); 
    } 
    else if (document.selection) { 
    txt = document.selection.createRange().text; 
    } 
    else return; 

    return txt; 
} 

यह समारोह एक वस्तु का प्रतिनिधित्व करने देता है पाठ चयन यह ब्राउज़र में काम करता है (हालांकि मुझे संदेह है कि यह ऑब्जेक्ट्स देता है जो ब्राउज़र पर निर्भर करता है और ब्राउज़र के आधार पर थोड़ा अलग होगा और परिणाम के वास्तविक पाठ के लिए केवल अतिरिक्त गुणों के बजाय भरोसेमंद होगा)।

नोट: मैं मूल रूप से है कि कोड टुकड़ा यहाँ की खोज की: http://www.codetoad.com/javascript_get_selected_text.asp

+0

आप 'toString()' कॉल करने के लिए की जरूरत है। 'चयन चयन' वापसी ऑब्जेक्ट। क्रोमियम में परीक्षण किया गया। – jcubic

+0

यह फ़ायरफ़ॉक्स, एज 14 या IE11 में इनपुट में काम नहीं करता है। – Benno

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