Sealyu

          --- 博客已遷移至: http://www.sealyu.com/blog

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks

          NOTE: I’ve released a set of JavaScript Quicktags (that implement this technique) under the LGPL license. Please look at this code as it has a variety of enhancements and bug fixes.

          I discovered a real JavaScript gem in PHPMyAdmin this morning. They have code that inserts content into a <textarea> at the cursor position instead of just at the beginning/end of the content. This is something I thought wasn’t possible – I’m quite pleased I was wrong.

          I’ll be glad to see this code spread quickly to web forms that use buttons to aid in styling text and inserting image and link tags. WordPress and other blog and web forum packages would really benefit from this. (PHPMyAdmin is GPL, so any other GPL app should be able to use their code directly with attribution).

          Here is a quick look at a generic version of the technique:

          function insertAtCursor(myField, myValue) {
          //IE support
          if (document.selection) {
          myField.focus();
          sel = document.selection.createRange();
          sel.text = myValue;
          }
          //MOZILLA/NETSCAPE support
          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.formName.fieldName, 'this value');
          I guess when the mouse leaves the textarea, it still has a cursor position left over. This code uses that position just as you’d want it to.
          posted on 2010-06-04 03:12 seal 閱讀(233) 評論(0)  編輯  收藏 所屬分類: Javascript
          主站蜘蛛池模板: 时尚| 信丰县| 安康市| 姜堰市| 克拉玛依市| 巍山| 庆云县| 达日县| 北安市| 万宁市| 高雄市| 凌海市| 罗田县| 黔西| 齐齐哈尔市| 潼南县| 涿州市| 诸暨市| 稷山县| 英超| 犍为县| 安阳县| 山东省| 行唐县| 留坝县| 开封县| 临西县| 建水县| 定远县| 云南省| 罗源县| 德令哈市| 湖州市| 织金县| 临汾市| 建阳市| 监利县| 宣恩县| 色达县| 沾益县| 万宁市|