如何使用javascript将文本插入textarea?

时间:2010-02-05 01:53:05

标签: javascript text

我需要在光标所在的地方插入一些文本到textarea,如何在没有jquery的情况下执行此操作?

3 个答案:

答案 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的例程,它具有更加繁琐的查找光标位置的逻辑。