2010-11-14 19 views
14

क्या चयनित टेक्स्ट का HTML प्राप्त करने के लिए कोई क्रॉस-ब्राउज़र तरीका है?चयनित टेक्स्ट का HTML

+0

के संभावित डुप्लिकेट (http://stackoverflow.com/प्रश्न/10478/प्राप्त-चयनित-टेक्स्ट-इन-ए-ब्राउज़र-क्रॉस-प्लेटफ़ॉर्म) – Sarfraz

+5

उस प्रश्न का कोई भी जवाब बहुत अच्छा नहीं है, और यह एक अलग प्रश्न है: यह चयनित टेक्स्ट के लिए पूछता है, HTML का नहीं चयनित पाठ –

+0

पहले से ही उत्तर दिया गया है http://stackoverflow.com/questions/10478/getting-selected-text-in-a-browser-cross-platform – wiifm

उत्तर

31

इस समारोह सभी प्रमुख ब्राउज़रों में यह करना होगा: [। एक ब्राउज़र, पार मंच में हो रही चयनित पाठ]

function getSelectionHtml() { 
 
    var html = ""; 
 
    if (typeof window.getSelection != "undefined") { 
 
     var sel = window.getSelection(); 
 
     if (sel.rangeCount) { 
 
      var container = document.createElement("div"); 
 
      for (var i = 0, len = sel.rangeCount; i < len; ++i) { 
 
       container.appendChild(sel.getRangeAt(i).cloneContents()); 
 
      } 
 
      html = container.innerHTML; 
 
     } 
 
    } else if (typeof document.selection != "undefined") { 
 
     if (document.selection.type == "Text") { 
 
      html = document.selection.createRange().htmlText; 
 
     } 
 
    } 
 
    return html; 
 
} 
 

 

 
// bind events for selection 
 

 
document.addEventListener('mouseup', function(){ 
 
    var selectedHTML = getSelectionHtml(); 
 
    if(selectedHTML) 
 
    console.log(selectedHTML) 
 
}); 
 

 
document.addEventListener('keyup', function(e){ 
 
    var selectedHTML, key = e.keyCode || e.which; 
 
    if(key == 16){ // if "shift" key was released 
 
    selectedHTML = getSelectionHtml(); 
 
    if(selectedHTML) 
 
     console.log(selectedHTML) 
 
    } 
 
});
<ul contenteditable> 
 
    <li><p>Select <b>this</b> <em>text</em> right <i>here</i></p></li> 
 
    <li>Or <b>this text</b></li> 
 
</ul>

+2

इस समाधान के साथ समस्या है जब आप

को

पहले पैराग्राफ पाठ की टोपियां लॉक किया हुआ हिस्सा चुनें

लिए चयनित किया जा है कि दूसरा पैराग्राफ

आप उम्मीद नहीं मिलता "पाठ है BE चयनित "लेकिन"

टेक्स्ट से

बीई चयनित

- कुछ कारणों से ब्राउजर विज्ञापन टैग जो चयन में नहीं हैं, जो कि बंद करने के क्रम में हैं। क्या कोई तरीका है कि चयन में वास्तव में क्या है? – honzzz

+2

एक HTML दस्तावेज़ मूल रूप से नोड्स का पेड़ है। एक बार प्रारंभिक HTML टेक्स्ट को पार्स कर दिया गया है, यह अनिवार्य रूप से चला गया है और आपको नोड्स में सौदा करना होगा। चयन को परिवर्तित करने के लिए यह संभव होगा (लेकिन अपेक्षाकृत जटिल) आप जिस प्रकार की स्ट्रिंग का सुझाव देते हैं लेकिन इसकी कोई गारंटी नहीं है कि यह मूल HTML टेक्स्ट से मेल खाएगा, जो दस्तावेज़ का प्रतिनिधित्व करने के कई समान मान्य तरीकों में से एक है। –

+0

मेरे लिए काम करता है thanx !! यह मुझे कुछ विचार भी दिया .. –

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