Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

javascript ile seçilen metni alma - değiştirme

javascript veya jquery ile seçilen metne, metin editörü gibi özellikler vermek istiyorum.
mesela

"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec non sapien tellus." buradan seçilen metine b tagı uygulamaj istiyorm.
document.getSelection() ile seçilen metni alabiliyorum ama üzerinde değişiklik yapamıyorum.
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • mcicek adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    37 cevap - 5 soru
    belli bir html tag arasında ki metin mi yoksa textarea içinde mi kodundan örnek gösterirsen fikir yürütebilirim.
    • cool_eagle adlı üyenin fotoğrafı cool_eagle
      farketmez textarea veye herhangi bir tag içinde olabilir
      9 yıl önce yazılmış
    • mcicek adlı üyenin fotoğrafı mcicek
      şöyle birşey bulup sana uyarladım fakat bir türlü document.ready de çalıştıramadım inceler belki ilerletebilirsin.

      function bold(){
      	var aralik = window.getSelection().getRangeAt(0);
      	var txt = aralik.extractContents();
      	var div = document.createElement("b");
      	div.appendChild(txt);
      	aralik.insertNode(div);
      }
      
      9 yıl önce yazılmış
    • cool_eagle adlı üyenin fotoğrafı cool_eagle
      teşekkürler çalıştı. ama textarea içinde çalışmadı ona uğraşırım artk kendim. teşekkürler
      9 yıl önce yazılmış

Cevaplar

  • necmettin adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    80 cevap - 0 soru
    Değiştirilebilir kısımları text veya textarea türünde input alanı olarak verirsen seçilen bölümü değiştirdikten sonra o input'un taşıdığı değeri değiştirerek istediğiniz elde edebilirsin.

    Ya da bir döngü ile seçilen metnin hangi üst öğenin bir parçası olduğunu bulup onun innerHTML'ini değiştirmen gerekir.

    Birincisi daha iyi bir çözüm. Input alanlarını kullanıcının doğrudan değiştirememesi için o alanları "disabled" atarsın. Alanın sayfa metninden farklı görünmemesi için de sayfada kullandığın renklendirmeleri kullanıp CSS tarafında border atamasını 0px yaparsın.
    • cool_eagle adlı üyenin fotoğrafı cool_eagle
      diyelim ki "asdasdasdadadsadasdasdaad uzmansorusu.com" yazılı textarea içinde. ben uzman kısmını kalın yapmak istiyorum. sadece uzman kısmını nasıl b tagı içine alacağım
      9 yıl önce yazılmış
    • necmettin adlı üyenin fotoğrafı necmettin
      var eleman = document.getElementById('inputadi');
      eleman.innerHTML = eleman.innerHTML.replace(/boldyapılacakmetin/, "<b>boldyapılacakmetin</b>");

      örneğinde olduğu gibi
      9 yıl önce yazılmış
    • cool_eagle adlı üyenin fotoğrafı cool_eagle
      peki metinde seçtiğim kelimeden birden fazla varsa replace ile hepsi kalın olacak bu sefer
      9 yıl önce yazılmış
    • necmettin adlı üyenin fotoğrafı necmettin
      o zaman replace yerine önce indexOf ile aradığın stringin başladığı yeri bulup o şekilde yapılabilir.
      9 yıl önce yazılmış