SORU
12 HAZİRAN 2009, Cuma


Bir öğe seçme metin (fare ile vurgulayarak benzer)

Kullanıcılar bir bağlantıyı tıklatın istiyorum, sonra başka bir eleman HTML metin seçer (değilbir giriş).

"Seçin" üzerine farenizi sürükleyerek metni seçin şekilde yani. Bu herkes "seçin" ya da "vurgulamak" başka bir deyişle. bahsediyor çünkü araştırma için bir ayı olmuştur

Bu mümkün mü? Benim kod şimdiye kadar:

HTML:

<a href="javascript:" onclick="SelectText('xhtml-code')">Select Code</a>
<code id="xhtml-code">Some Code here </code>

JS:

function SelectText(element) {
    $("#"   element).select();
}

Bir şeylerin eksik olduğu bariz belli oluyormu?

CEVAP
12 HAZİRAN 2009, Cuma


Bunun için bir çözüm buldum, this thread sayesinde TheVillageİdiot tarafından bulundu. Bilgi verilen değiştirmek ve herhangi bir öğe metin, ne olursa olsun tarayıcı seçmek için süper bir işlevi oluşturmak için bir WordPress kullanmak biraz karıştırın başardı:

function SelectText(element) {
    var text = document.getElementById(element);
    if ($.browser.msie) {
        var range = document.body.createTextRange();
        range.moveToElementText(text);
        range.select();
    } else if ($.browser.mozilla || $.browser.opera) {
        var selection = window.getSelection();
        var range = document.createRange();
        range.selectNodeContents(text);
        selection.removeAllRanges();
        selection.addRange(range);
    } else if ($.browser.safari) {
        var selection = window.getSelection();
        selection.setBaseAndExtent(text, 0, text, 1);
    }
}

DÜZENLE (9/28/11):

Bu cevap güncellenmiştir beri bir süre oldu, ve ben bu soruyu sordum cevapladığın için bir geliştirici olarak çok şey öğrendim. Ayrıca düşündüğümden çok daha fazla ilgi aldı. Artık kullanılmayan bir WordPress kullanmak yöntemleri güveniyor, ya da bir WordPress kullanmak hiç olmadığı, bu konuda yayınlanan orijinalinden daha iyi bir çözüm sunmak istiyorum. Bir WordPress kullanmak yardımcı olabilir misiniz? Elbette, ama eğer bir WordPress kullanmak olmadan aynı sonucu elde etmek ve algılama özelliği yerine koklama tarayıcı kullanarak eğer, neden değil mi? Aşağıda güncelleştirilmiş cevabım:

function SelectText(element) {
    var doc = document
        , text = doc.getElementById(element)
        , range, selection
    ;    
    if (doc.body.createTextRange) {
        range = document.body.createTextRange();
        range.moveToElementText(text);
        range.select();
    } else if (window.getSelection) {
        selection = window.getSelection();        
        range = document.createRange();
        range.selectNodeContents(text);
        selection.removeAllRanges();
        selection.addRange(range);
    }
}

document.onclick = function(e) {    
    if (e.target.className === 'click') {
        SelectText('selectme');
    }
};
<div id="selectme"><p>Some text goes here!</p><p>Moar text!</p></div>
<p class="click">Click me!</p>

Burada birgüncellendiworking demo. Bir jQuery Eklentisi için isteyen, one of those too (yeniden güncellendi) yaptım.

GÜNCELLEME (1/10/2012)Tim başına Aşağı önerisi, setBaseAndExtent() y için gerekli değildir.

GÜNCELLEME (9/19/2014)Gömülü kod parçası

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • backyardjay

    backyardjay

    8 ŞUBAT 2009
  • Muse

    Muse

    28 EYLÜL 2006
  • TheMasterOfHell100

    TheMasterOfH

    13 AĞUSTOS 2011