2011-11-27 19 views
6

मैं फ़ंक्शन ढूंढ रहा हूं जो मुझे चयनित टेक्स्ट से पहले या बाद में कुछ तत्व बनाने की अनुमति देता है। इस तरह के javascript replace selection all browsers जैसा कुछ भी है, लेकिन इसे बदलने के बजाय चयन से पहले या बाद में कुछ सामग्री जोड़ने के लिए, जैसे after() और before() jQuery विधियां। क्या मुझे कुछ डीओएम चयन विधि का उपयोग करना चाहिए, यदि हां, तो कौन सा? या इसे बाहर ले जाने के लिए कुछ आसान है?टेक्स्ट चयन से पहले/बाद में तत्व जोड़ें

+0

नहीं एक जवाब है, लेकिन: मुझे यकीन है कि आप का उपयोग कर बहुत आसानी से कर सकते टिम डाउन [Rangy] (http://code.google.com/पी/रेंज/पुस्तकालय। –

उत्तर

10

यहां ऐसा करने के लिए कार्यों की एक जोड़ी है।

लाइव उदाहरण: http://jsfiddle.net/hjfVw/

कोड:

var insertHtmlBeforeSelection, insertHtmlAfterSelection; 

(function() { 
    function createInserter(isBefore) { 
     return function(html) { 
      var sel, range, node; 
      if (window.getSelection) { 
       // IE9 and non-IE 
       sel = window.getSelection(); 
       if (sel.getRangeAt && sel.rangeCount) { 
        range = window.getSelection().getRangeAt(0); 
        range.collapse(isBefore); 

        // Range.createContextualFragment() would be useful here but is 
        // non-standard and not supported in all browsers (IE9, for one) 
        var el = document.createElement("div"); 
        el.innerHTML = html; 
        var frag = document.createDocumentFragment(), node, lastNode; 
        while ((node = el.firstChild)) { 
         lastNode = frag.appendChild(node); 
        } 
        range.insertNode(frag); 
       } 
      } else if (document.selection && document.selection.createRange) { 
       // IE < 9 
       range = document.selection.createRange(); 
       range.collapse(isBefore); 
       range.pasteHTML(html); 
      } 
     } 
    } 

    insertHtmlBeforeSelection = createInserter(true); 
    insertHtmlAfterSelection = createInserter(false); 
})(); 
2

MSIE में: collapse दी गई श्रेणी और उपयोग pasteHTML तत्व

दूसरों को सम्मिलित करने के: इसके अलावा collapse दिया रेंज और के माध्यम से insertNode


दोनों तत्व सम्मिलित पतन-विधियां एक वैकल्पिक तर्क स्वीकार करती हैं जो परिभाषित करती है कि आप कहां गिरना चाहते हैं। यदि आप अंत में तत्व रखना चाहते हैं, तो अंत में पतन करें, अन्यथा शुरुआत में।

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