我需要在光标所在的地方插入一些文本到textarea,如何在没有jquery的情况下执行此操作?
答案 0 :(得分:1)
您可能需要在以下位置检查小代码示例:
上述文章中的代码:
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');
答案 1 :(得分:0)
使用HTML title
属性?当光标位于特定元素上时,它会将工具提示文本放在光标旁边。
或者您可以使用<div>
创建position: fixed
,然后将其定位在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>
答案 2 :(得分:0)
请参阅this person的代码here。此代码使用selection
对象的document
属性来获取光标位置,然后构建一个新字符串并将其填充到textarea中。它还有一个专门用于IE的例程,它具有更加繁琐的查找光标位置的逻辑。