Kullanıcı içerik olarak düzenlenebilir bir divta metin yazdıkça imleç konumunu bulmak için çeşitli tarifler vardır, ancak bunların hiçbirini işe alamıyorum. Aslında en basit koddan en şaşırtıcı sonuçları aldım; Aşağıdaki kod parçacığında, bazı metinleri eklerseniz ve ardından onu kaldırmak için geri aldığınızda, startoffset'iniz gerçekten artar! (Bölme öğelerini veya bir şeyleri hayal edebilirim ve ofset yazdırılamayan etiketler veya bir şey içerebilir.)İçerik düzenlenebilir bir div içinde imleç satırı ve sütunu alın
Sabit bir yazı tipine sahip olacak ancak sözdizimi vurgulamayı planladığım bir div'um var (bunun bir şey değil sadece yapmak; onun daha interaktif istemi düzenleme ile her yerde senaryodaki kılan bu tür bir pozisyon kendim almak istiyorum am neden sezerlerse)
<html>
<head>
<script type="text/javascript">
<!--
var ta = null;
function onKeypress(event) {
var range = window.getSelection().getRangeAt(0);
document.getElementById("msg").textContent = ""+range.startContainer+","+range.startOffset;
}
function init() {
ta = document.getElementById("ta");
ta.focus();
ta.onkeypress = onKeypress;
}
//-->
</script>
<body onload="init();">
<noscript>
Sorry, you need javascript. Not much to see here otherwise; move along.
</noscript>
<p id="msg"></p><hr/>
<div id="ta" contenteditable="true" style="width:100%; height:100%; font-family: courier;">
</div>
</body>
</html>
nasıl satır ve sütun biliyorum ve metin alabilirsiniz. herhangi bir satır için, böyle bir içerikte düzenlenebilir div?
Ne diyorsun kodunuzda yanlış olduğundan emin değilim. Örnek kodunuzu Chrome'da test ettiğimde, kod işe yarıyor gibi görünüyor - geri adım attığımda, konum gösterimi div'a daha fazla metin yazmaya başlayana kadar güncellenmiyor, ancak daha sonra konum göstergesi tekrar doğrudur. Backspace, keyup olayını veya eksik olduğum başka bir şeyi tetiklemiyor mu? – Griffin
Ah, galiba anladım, bir cevap yazdım. – Griffin