2010-11-14 12 views
14

Seçilen metnin HTML'sini almanın çapraz tarayıcı yolu var mı?Seçilen bir metin HTML'si

+0

olası yinelenen (http://stackoverflow.com/questions/10478/tarayıcıda çapraz-tarayıcı-çapraz-platform) – Sarfraz

+5

Bu soruya verilen cevapların hiçbiri çok iyi değil ve farklı bir soru: seçilen metin için değil HTML'yi soruyor. seçilen metin –

+0

Daha önce http://stackoverflow.com/questions/10478/getting-selected-text-in-a-browser-cross-platform adresinden yanıtlanmıştır. – wiifm

cevap

31

Bu fonksiyon tüm büyük tarayıcılarda yapacak: [. Bir tarayıcı, çapraz platform alınıyor seçili metne]

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

sorun

İÇİN

birinci paragraf TEXT kapaklar kilitli parçasını seçtiğinizde beklenen alamadım

İÇİN "METİN ikinci paragraf SEÇİLMİŞ BE olmasıdır BE SEÇİLEN "ama"

YAZIYOR

SEÇİLMİŞ SEÇENEKLER

- bazı sebeplerden dolayı tarayıcıda yer almayan etiket reklamları olanları kapatmak için.Yalnızca seçimin gerçekte nasıl seçilebileceği herhangi bir yol var mı? – honzzz

+2

Bir HTML belgesi temel olarak bir düğüm ağacıdır.İlk HTML metni ayrıştırıldıktan sonra, esasen gitti ve düğümleri ele almak zorundasınız. Seçimi dönüştürmek mümkün olabilir (ancak nispeten karmaşık) Önerdiğiniz dize, ancak belgeyi temsil eden birçok geçerli yöntemden yalnızca biri olan orijinal HTML metniyle eşleşecek bir garanti yoktur. –

+0

Benim için çalışır thanx !! Bana biraz fikir verdi .. –

İlgili konular