İçerik düzenlenebilir bir DIV için bir otomatik tamamlayıcı yazıyorum (metin kutusuna html içeriği oluşturması gerekiyor. Bu nedenle TEXTAREA üzerinden contenteditable DIV kullanmak tercih edilir). Şimdi DIV'de bir keyup/keydown/click olayı olduğunda imleç konumunu bulmam gerekiyor. Böylece html/metni o konumda ekleyebilirim. Bazı hesaplamalar ile nasıl bulabildiğim ya da içeriden okunabilir bir DIV'de imleç konumunu bulmama yardımcı olacak bir tarayıcı özelliği var.Kapsamlı bir DIV'de imleç konumu nasıl bulunur?
cevap
Tek yapmanız gereken, imlecin içine biraz içerik eklemekse, konumunu açıkça bulmaya gerek yoktur. Aşağıdaki fonksiyonu tüm ana masaüstü tarayıcılarda İmleç konumuna bir DOM düğümü (öğesini veya metin düğümü) ekleyecektir:
function insertNodeAtCursor(node) {
var range, html;
if (window.getSelection && window.getSelection().getRangeAt) {
range = window.getSelection().getRangeAt(0);
range.insertNode(node);
} else if (document.selection && document.selection.createRange) {
range = document.selection.createRange();
html = (node.nodeType == 3) ? node.data : node.outerHTML;
range.pasteHTML(html);
}
}
Bunun yerine bir HTML dize eklemek istiyorsanız:
function insertHtmlAtCursor(html) {
var range, node;
if (window.getSelection && window.getSelection().getRangeAt) {
range = window.getSelection().getRangeAt(0);
node = range.createContextualFragment(html);
range.insertNode(node);
} else if (document.selection && document.selection.createRange) {
document.selection.createRange().pasteHTML(html);
}
}
GÜNCELLEME
OP'ın açıklamalarının ardından, IE için bir DOM Range gibi davranır TextRange
nesne sarıcı ekler kendi Rangy kütüphane kullanmanızı öneririz. Bir DOM Range, her biri bir düğüm ve bu düğüm içindeki bir uzaklık cinsinden ifade edilen bir başlangıç ve bitiş sınırından ve Aralığın manipüle edilmesi için bir grup metottan oluşur. MDC article, bir giriş sağlamalıdır.
@Tim, cevabınız için teşekkür ederiz. Bu, geçerli imleç konumuna eklemem gerektiğinde çalışır. Muhtemelen söylemek istediğim, imleci belirli bir pozisyonda ayarlayabilmek ve oraya yerleştirebilmek. Geçerli imleç konumunu bildiğimi ve birkaç konumdan geri dönmek ve otomatik tamamlama açılır menüsünden tıklattığımda html eklemek istediğimi varsayalım. (Bir konum bulma ve DOM'a ekleme hakkında mı konuşuyorum?) –
Tamam, cevabımı güncelledim. –
- 1. Bir JTextArea içinde imleç konumu nasıl bulunur?
- 2. VIM kısaltması içindeki imleç konumu
- 3. set imleç konumu() yeni posta
- 4. Bash içinde imleç konumu nasıl alınır?
- 5. Textarea metin değiştirmede imleç konumu nasıl korunur?
- 6. EditText'te imleç konumu (x, y) nasıl alınır
- 7. Windows'da Metin İmleç Konumu Nasıl Belirlenir
- 8. Python'da imleç satır sayısı nasıl bulunur?
- 9. NSTextView'da düzeltme işareti konumu nasıl bulunur?
- 10. Amazon RDS tarafından oluşturulan otomatik S3 yedeklerinin konumu nasıl bulunur?
- 11. Kapsamlı dilde
- 12. Kapsamlı bir nesnenin Xtext örneği
- 13. kapsamlı enum
- 14. Bir GPS noktasının belirli bir Başlangıç ve Bitiş GPS konumu kümesinde bulunup bulunmayacağı nasıl bulunur?
- 15. nasıl set imleç
- 16. İmleç Linux'ta nasıl denetlerim?
- 17. Sınıf-kapsamlı enum
- 18. Koşullu bir İmleç tanımlayın
- 19. NSPopover'ın ok başı konumu nasıl değiştirilir?
- 20. Bir dizedte DATE nasıl bulunur
- 21. NSArray'da bir dize nasıl bulunur?
- 22. Bir arraylist dizini nasıl bulunur?) (
- 23. Coldfusion'ta İstemci kapsamlı değişkenleri nasıl zamana ayırabilirim?
- 24. Spring - Prototip kapsamlı fasülyemi nasıl yok edebilirim?
- 25. iOS: Sıralama konumu NSMutableArray
- 26. Kapsamlı DCOM belgelerini nerede bulabilirim?
- 27. Android Studio'da Strings.xml kullanımları nasıl bulunur?
- 28. Bir imleç dikdörtgenin yerini bulun
- 29. jQuery mousemove() için fare konumu()
- 30. imleç kontrolü
İmleç konumu veya bakim konumu? Yani aslında, caret pozisyonunu koordinatlarla bulmalısın? –