Ich brauche, um etwas Text in ein Textfeld an der Stelle einfügen, wo der Cursor ist, wie kann ich dies ohne Jquery tun?
Antworten
Zu viele Anzeigen?Vielleicht möchten Sie sich das kleine Codebeispiel unter ansehen:
Code aus dem oben genannten Artikel:
function insertAtCursor(myField, myValue) {
if (document.selection) {
myField.focus();
sel = document.selection.createRange();
sel.text = myValue;
}
else if (myField.selectionStart || myField.selectionStart == '0') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
myField.value = myField.value.substring(0, startPos)
+ myValue
+ myField.value.substring(endPos, myField.value.length);
} else {
myField.value += myValue;
}
}
// calling the function
insertAtCursor(document.getElementById('textarea_id'), 'sometext');
Verwenden Sie ein HTML title
Attribut? Damit wird der Tooltip-Text neben dem Cursor platziert, wenn er sich über einem bestimmten Element befindet.
Oder Sie könnten eine <div>
con position: fixed
und positionieren ihn dann bei event.screenX, event.screenY
:
<div id="tip" style="position: fixed; visibility: hidden;"></div>
<textarea onmousemove="position();" onmouseout="hide();"></texarea>
<script type="text/javascript">
function position() {
var d = document.getElementById('tip');
d.style.visibility = 'visible';
d.style.left = event.screenX + 'px';
d.style.top = event.screenX + 'py';
}
function hide() {
document.getElementById('tip').style.visibility = 'hidden';
}
</script>
Siehe bitte diese Person Der Code aquí . Dieser Code verwendet die selection
Eigenschaft der document
Objekt, um die Cursorposition zu ermitteln, und erstellt dann eine neue Zeichenkette, die in das Textfeld eingefügt wird. Es hat auch eine spezialisierte Routine für IE, die viel mehr umständlich Logik für die Suche nach der Cursor-Position hat.