【发布时间】:2010-02-05 01:53:05
【问题描述】:
我需要在光标所在位置的文本区域中插入一些文本,如果没有 jquery,我该如何做到这一点?
【问题讨论】:
标签: javascript text
我需要在光标所在位置的文本区域中插入一些文本,如果没有 jquery,我该如何做到这一点?
【问题讨论】:
标签: javascript text
您可能需要在以下位置查看小代码示例:
来自上述文章的代码:
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');
【讨论】:
请查看this person 的代码here。此代码使用document 对象的selection 属性来获取光标位置,然后构建一个新字符串并将其填充到textarea 中。它还有一个专门的 IE 例程,用于查找光标位置的逻辑要麻烦得多。
【讨论】:
使用 HTML title 属性?当光标位于特定元素上时,它将在光标旁边放置工具提示文本。
或者您可以使用position: fixed 创建一个<div>,然后将其定位在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>
【讨论】: