Ricavare la posizione del cursore (la | che lampeggia) in una textarea
codice:
<script>
var isSelected = false;
function markSelection ( txtObj ) {
if ( txtObj.createTextRange ) {
txtObj.caretPos = document.selection.createRange().duplicate();
isSelected = true;
}
}
function insertTag ( txtName, tag ) {
if ( isSelected ) {
var txtObj = eval ( "document.forms[0]." + txtName );
if (txtObj.createTextRange && txtObj.caretPos) {
var caretPos = txtObj.caretPos;
caretPos.text = tag+caretPos.text;
markSelection ( txtObj );
if ( txtObj.caretPos.text=='' ) {
isSelected = false;
txtObj.focus();
}
}
} else {
// gestione perdita focus
}
}
</script>
<form>
<textarea name="tsttxt"onselect="markSelection(this);" onclick="markSelection(this);" onkeyup="markSelection(this);"></textarea>
</form>
Il codice l'ho prelevato qui sul forum e non l'ho testato/provato
Se invece vuoi recuperare la posizione del mouse nel documento
codice:
<script>function posizioneMouse(event,obj){
var scrollTOP = (document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop;
var scrollLEFT = (document.documentElement.scrollLeft) ? document.documentElement.scrollLeft : document.body.scrollLeft;
if(window.event){
var allX = window.event.clientX+scrollLEFT;
var allY = window.event.clientY+scrollTOP;
} else {
var allX = event.clientX+scrollLEFT;
var allY = event.clientY+scrollTOP;
}
var elParent = obj;
var objX = 0;
var objY = 0;
while (elParent){
objX += elParent.offsetLeft;
objY += elParent.offsetTop;
elParent = elParent.offsetParent;
}
var x = allX-objX;
var y = allY-objY;
alert("Coordinata x:"+x+"px, coordinata y:"+y+"px");
}
</script>
<div style="width:200px; height:200px; background-color:#0FF;" onclick="posizioneMouse(event,document.getElementById('test'));"></div>
Anche questo non l'ho testato non mi sembra ci sia altro