How to get text cursor position using javascript

this is my code ,i fill space all in div ,(use jquery):

<div id="a" style="position:absolute;top:300px;width:100px;height:100px;background:red;color:black;word-wrap:break-word;">
    <div id='a2' contenteditable=true ></div>
<script type="text/javascript">
    String.prototype.repeat = function(n) {
        return new Array(1 + parseInt(n, 10)).join(this);

    var s=$('#a').width()/4*$('#a').height()/19;



so how can i get the text cursor position when i click somewhere in 'a2' div

the demo is




You can use the pageX and pageY property of the jQuery event object:

$('#a2').click(function(e) {
    alert(e.pageX + ", " + e.pageY);

The returned coordinates are relative to the top left of the document.

You might want to use the A-Tools plugin, more specifically its getSelection() method. It returns the caret position if no text is selected.

By the way, the "text cursor" is called the caret :)

EDIT: The aforementioned plugin will not work with contenteditable <div>elements. While looking for another solution, I found that question which is a duplicate of yours. Maybe the responses there can help you.


you can use Prototype.js to get mouse position:

var x, y;
function getCoordinatesInsideElement(e)
    x = Event.pointerX(e);
    y = Event.pointerY(e);
    /* DO-SOMETHING */

See prototype reference at:


Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.