2008-08-13 22 views
10

Tarayıcı tabanlı uygulamamda yapmak istediğim şeylerden biri, kullanıcının bir metin seçmesine izin verir (<textarea>, sadece düz ol 'metninde değil) !) ve benim uygulamamın daha sonra bir sonraki ile etkileşime girebilecek küçük bir araç çubuğunu açmasına izin ver (benim durumumda, ek açıklamalar ekle).Bir tarayıcıda seçilen metni alma, platformlar arası platformlar için

Ben WYSIWYG editörleri, yazmaya odaklanmış gibi görünüyor google bir sürü şey bulduk ama bu istiyorum ve bunun çoğu İdeal FF2 yoksa 3. IE çalıştı ancak ne değildir Şu anda seçilen metni IE7 (ve mümkünse 6), FireFox 2 & 3 ve Safari 2'da çalışan tarayıcı penceresinde döndüren bazı işlevleri istiyorum. Operada çalışırsa, bu bir bonus olur, ama bu bir gereklilik değildir.

Bunu yapan bir işlevi olan var mı? Ya da nereden başlayacağınıza dair bir fikir?

cevap

7

jQuery ve wrapSelection plugin'a bakın. Aradığın şey bu olabilir. Farklı tarayıcıların metin seçimine nasıl erişebildiğiyle ilgili bazı ayrıntılar için

1

Deneyimlerim, bu farklı API'lerle doğrudan çalışmak oldukça sakindir, yani wrapSelection sizin için çalışıyorsa bununla giderdim.

-3

Bu kod Safari, IE ve Firefox çalışır - bu jQuery eklentisi serin

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

Yani bazı yardımcı umut ama çok özel bir görevi gerçekleştirir: Bir etiketiyle vurgulamak metni kaydırma. Bu sadece istediğin şey olabilir. Eğer istediğiniz (veya olmayan bir durumdayız) sayfanızda yabancı işaretlemeyi katmayan Ama eğer yerine aşağıdaki çözümü deneyebilirsiniz:

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; 
} 

Bu fonksiyon temsil eden bir nesne döndürür metin seçimi Tarayıcılarda çalışır (döndürdüğü nesnelerin, tarayıcıya bağlı olarak biraz farklı olacağından ve yalnızca ek özelliklerin herhangi birinden ziyade sonucun gerçek metni için güvenilir olacağından şüpheleniyorum).

Not: Aslında burada o kod parçası keşfetti: http://www.codetoad.com/javascript_get_selected_text.asp

+0

Sen() '' toString araman gerekiyor. 'getSelection' Seçim nesnesini döndürür. Chromium'da test edildi. – jcubic

+0

Bu, Firefox, Edge 14 veya IE11'deki girişlerde çalışmaz gibi görünmüyor. – Benno

İlgili konular