2013-04-19 17 views
15

güncel imleç pozisyonunu alın. Krom ve firefox ile çalışmalıdır. Aşağıdaki kod kullanıyorum:Bir metin kutusu/textarea</strong> imlecin <strong>geçerli konumunu bulmak için bir kod gerekir bir metin

<!DOCTYPE html> 
<html> 
    <head> 
    <script> 
     function textbox() 
     { 
     document.getElementById('Javascript_example').value = document.activeElement.id; 
     var ctl = document.getElementById('Javascript_example'); 
     alert(ctl); 

     var startPos = ctl.selectionStart; 
     alert(startPos); 
     var endPos = ctl.selectionEnd; 
     alert(endPos); 
     } 
    </script> 
    </head> 
    <body> 

    <input id="Javascript_example" name="one" type="text" value="Javascript_example" onclick="textbox()"> 

    </body> 
</html> 

Herhangi bir öneri?

+0

bu http://jsfiddle.net/eR4qc/7/ –

+1

sayfasının olası bir kopyasını inceleyin [textarea'da metin pozisyonu nasıl alınır?] (Http://stackoverflow.com/questions/263743/how-to-get- şapka konumlu-in-textarea) o imleç konumunu değil, sayfadaki metin 's x ve y koordinatları istiyor –

+0

@rakhee. Bütün soru arkadaşının okunmasına yardımcı olur;) – Niall

cevap

30

O geçerli değil senin kimlik özelliği, uzayda ve seçimin kontrol önce girişin değerini değiştirmekte olduğumuzu aslında dışında Tamam görünüyor.

<input id="Javascript_example" name="one" type="text" value="Javascript example" onclick="textbox()"> 

JavaScript: IE < = 8 destekliyoruz Ayrıca

function textbox() 
{ 
    var ctl = document.getElementById('Javascript_example'); 
    var startPos = ctl.selectionStart; 
    var endPos = ctl.selectionEnd; 
    alert(startPos + ", " + endPos); 
} 

, o tarayıcılar selectionStart ve selectionEnd desteklemediğini farkında olması gerekir.

+0

Gerçekten, şaka mı yapıyorsun. Document.getElementById ('Javascript_example') öğesini kaldırdım. Value = document.activeElement.id; kodumdan satır. Ve çalışıyor. Yine de teşekkürler. Bana doğru yolu gösterdin :) – Perseus

4

Burada olası bir metod.

function isMouseInBox(e) { 
    var textbox = document.getElementById('textbox'); 

    // Box position & sizes 
    var boxX = textbox.offsetLeft; 
    var boxY = textbox.offsetTop; 
    var boxWidth = textbox.offsetWidth; 
    var boxHeight = textbox.offsetHeight; 

    // Mouse position comes from the 'mousemove' event 
    var mouseX = e.pageX; 
    var mouseY = e.pageY; 
    if(mouseX>=boxX && mouseX<=boxX+boxWidth) { 
    if(mouseY>=boxY && mouseY<=boxY+boxHeight){ 
     // Mouse is in the box 
     return true; 
    } 
    } 
} 

document.addEventListener('mousemove', function(e){ 
    isMouseInBox(e); 
}) 
+0

Hayır. Pozisyonu almak istiyorum. Ben JavaScript tıklayın ve Java, o zaman ben fare imlecini anlam olarak "imleç" yorumlanır, tamamen yanlış 4 – Perseus

+1

Ah dönmelidir sonra ekleme noktası/CARRET ise, diyelim edelim. Farklı soru için http://stackoverflow.com/questions/5149683/how-to-get-selected-text-caret-position-of-an-input-that-doesnt-have-focus – eshortie

+1

iyi cevap: Bu belki gör imlecin kadar basit bir şeyi yorumlamak :) –

İlgili konular