【问题标题】:How can i use javascript to insert text into a textarea?如何使用 javascript 将文本插入文本区域?
【发布时间】:2010-02-05 01:53:05
【问题描述】:

我需要在光标所在位置的文本区域中插入一些文本,如果没有 jquery,我该如何做到这一点?

【问题讨论】:

    标签: javascript text


    【解决方案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');
    

    【讨论】:

    • 我想在中间插入文字,而不是替换东西
    • 已修改。在 Firefox 中测试了上述内容。
    • 不错的发现。 +1 除了实际代码之外,还包括您的信息来源。
    【解决方案2】:

    请查看this person 的代码here。此代码使用document 对象的selection 属性来获取光标位置,然后构建一个新字符串并将其填充到textarea 中。它还有一个专门的 IE 例程,用于查找光标位置的逻辑要麻烦得多。

    【讨论】:

      【解决方案3】:

      使用 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>
      

      【讨论】:

        猜你喜欢
        • 2014-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-15
        • 1970-01-01
        • 2011-03-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多