Öncelikle beynim uyuştu artık : ) uzun uzun anlatıyım çözülsün şu sorun ya..
--------------------------
Arkadaşlar 2 - 3 ayrı sorunum var. Yardımcı olursanız sevvinirim.
Aslında ilk sorunu çözme yöntemim ikinci, ikincinin ki ise üçüncüyü doğuruyor ve bu şekilde uzayıp gidiyor.
Amacım: <div contenteditable="true">...</div> (HTML 5) özelliği ile komplex bir form dizesi elde etmek.
Sorun 1: contenteditable="true" komutu ile birlikte şu sorun geldi;
İçerisinde
class="" veya
style="" olan bir yazıyı (kopyala - yapıştır) ya da (sürükle - bırak) yaptığımda
<div contenteditable="true">...</div> üç nokta ile görünen yere o yazıyı atıyor fakat
style veya
class özellikleri ile birlikte atıyor. Ben bunu istemiyorum tabiki,
Sorun 1 çözüm 1: contenteditable="true" yerine
contenteditable="plaintext-only" kullanmak.
Sorun 2: plaintext-only komutu kullandığım zaman sadece (chrome,safari vb.)
WEBKIT tarayıcıları destekliyor. Diğer (mozilla,Interner explorer vb.) tarayıcılarda
contenteditable çalışmıyor. Bu nedenle
Sorun 1 çözüm 1: den vaz geçmiş oldum. Sorun 2 de ortadan kaltı.
Sorun 1 çözüm 2: $('body').on('input propertychange keyup keydown paste bind change focus',
'#maskContent',function(){.................});
- Yukarıdaki
#maskContent bahsettiğim
contenteditable olan
div içeriğimdir.
- Yukarıdaki komutta şunu yapıyorum;
Kısacası, o div' de herhangi bir değişiklik olursa
(tuş basma, tuş çekme, ctrl+v, seçme vs. vs.) aşağıdaki fonksiyonu çalıştır.
function stripValue(html) {
var tempDiv = document.createElement("DIV");
tempDiv.innerHTML = html;
return tempDiv.innerText;
}
// stripValue(html) -> Burdaki html '#maskContent' e aittir
Yani kısacası, yukarıdaki fonksiyon şu işlemi yapıyor. CTRL+V veya Mouse ile Yapıştır gibi bir işlem olursa, Gelen metini saf hale dönüştürüyor. Ama bu seferde (CURSOR)
imleci en başa götürüyor. Basit bir örnek verirsem;
<div contenteditable="tru">
(|imleç)Merhaba dünya</div>
Böylece bir Sorun 2 daha doğmuş oluyor.
Şimdi sorarım size,
İmleci klavyeden (End) tuşuna basılmışçasına en son a nasıl zıplatabilirim?
-----------------------
Herkese teşekkürler.