问题
I'm looking to get the X/Y coordinates of the caret within a textarea on key down. I've searched vigorously but without any luck whatsoever, it seems you can get the position, but not the on-screen X/Y coordinates.
回答1:
The only viable way of doing this, AFAIK:
- Append the contents of the TEXTAREA to a DIV
- Append the DIV to the DOM
- Place a SPAN inside the DIV at the character offset of the caret.
- Take the offset of the SPAN (
$(span).offset()
...) and minus the offset of the DIV (depending on whether you want the x/y coords relative to the textarea or the page)
Note: When copying the text from the TEXTAREA to the DIV, make sure to copy relevant CSS properties that may affect the offset (width, height, padding, margin, border, font-size, line-height etc.).
回答2:
I wrote this jQuery plugin for exactly that.
来源:https://stackoverflow.com/questions/3510009/textarea-x-y-caret-coordinates-jquery-plugin