Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

Mouse ile seçilen kelimenin kaçıncı karakterden başladığı

Konu, 'Javascript' kısmında Blackblue tarafından paylaşıldı.

  1. Blackblue

    Blackblue Üye

    Kayıt:
    1 Haziran 2008
    Mesajlar:
    192
    Beğenilen Mesajlar:
    0
    Meslek:
    Web Developer
    Şehir:
    Europe
    Bir seçim fonksiyonu var. Bir cümledeki herhangi bir kelimeyi mouse ile seçtiğimde seçtiğim kelimeyi js ile değişkene alabiliyorum. Fakat seçtiğim kelime yada karakterin o cümlede kaçıncı karakterden başlayıp kaçıncı karakterde bittiğini göstermede takıldım.

    Örnek olarak;
    Kod:
    Ben [B]bugün[/B] okula gittim.
    cümlesindeki diyelim ki bugün kelimesini mouse imleciyle seçtim. Aşağıdaki fonksiyon bana seçtiğim bugün kelimesini belirttiğim div'e yazdırıyor. Ek olarak istiyorum ki bugün kelimesi 5. karakterden başlıyor. 9. karakterde son buluyor diye yazması. bugün [5,9] gibi.

    Seçim fonksiyonlarım.

    Kod:
    function getSelected() {
    
     if(window.getSelection) { return window.getSelection(); }
    
    
     else if(document.getSelection) { return document.getSelection(); }
    
    
     else {
    
    
       var selection = document.selection && document.selection.createRange();
    
    
       if(selection.text) { return selection.text; }
    
    
       return false;
    
    
     }
    
    
     return false;
    
    
    }
    
    
    
    
    
    
    $(document).ready(function() {
    
    
     $('#sentence').mouseup(function() {
    
    
       var selection = getSelected();
    
    
       if(selection && (selection = new String(selection).replace(/^\s+|\s+$/g,''))) {
    
    
           $('#selected-characters').html(selected);
    
    
       }
    
    
     });
    
    
    });
    #sentence id 'sine sahip bir div içerisindeki yazan cümledeki seçim işlemini #selected-characters id'sine sahip diğer bir dive yazıyor.
     
  2. Aytekin

    Aytekin Yeni Üye

    Kayıt:
    12 Nisan 2012
    Mesajlar:
    11
    Beğenilen Mesajlar:
    0
    Meslek:
    Developer
    Şehir:
    Istanbul, Turkey, Turkey
    Kod:
    <script>
    function getSelected() {
     if(window.getSelection) { return window.getSelection(); }
    
    
     else if(document.getSelection) { return document.getSelection(); }
     else {
       var selection = document.selection && document.selection.createRange();
       if(selection.text) { return selection.text; }
    
    
       return false;
     }
     return false;
    }
    $(document).ready(function() {
     $('#secil').mouseup(function() {
       var selection = getSelected();
       if(selection && (selection = new String(selection).replace(/^\s+|\s+$/g,''))) {
           $('#sectim').html(selection);
    	   var hepsi = $('#secil').text();
    	   var kacinci = hepsi.indexOf(selection);
    	   kacinci = kacinci+1;
    	   var kach = selection.length-1;
    	   $('#kac').html("["+kacinci+","+(kacinci+kach)+"]");
       }
     });
    });
    </script>
    </head>
    
    
    <body>
    <div id="secil">Ben bugün okula gittim.</div>
    <div id="sectim"></div>
    <div id="kac"></div>
    
     
  3. Blackblue

    Blackblue Üye

    Kayıt:
    1 Haziran 2008
    Mesajlar:
    192
    Beğenilen Mesajlar:
    0
    Meslek:
    Web Developer
    Şehir:
    Europe
    ilginiz icin tesekkur ederim fakat bir cumlede sectigim karakter yada kelime birden fazla geciyorsa bu kod ilk gecenin karakter baslangic sayisini vermiyecek midir.
     
  4. Slothere

    Slothere Daimi Üye

    Kayıt:
    24 Nisan 2010
    Mesajlar:
    813
    Beğenilen Mesajlar:
    0
    Aradığın komutlar selectionStart ve selectionEnd.