zoukankan      html  css  js  c++  java
  • 编辑器demo

    编辑器按钮操作

    <button onclick="insertAtCursor('editcode','!=');" type="button" class="btn btn-info">!=</button>
    <button onclick="backspaceAtCursor('editcode');" type="button" class="btn btn-danger">del</button>

    编辑器js代码插入删除操作

    /**
    * 在光标处插入文字
    * @param {[DOM对象或者其ID]} field [可输入的域对象或者ID]
    * @param {[type]} myValue [待出入的文字]
    * @return {[type]} [description]
    */
    function insertAtCursor(field, myValue) {
    var myField ;
    if("string" === typeof field) {
    myField = document.getElementById(field);
    } else if('HTMLTextAreaElement' === field.constructor.name) {
    myField = field;
    } else {
    return;
    }

    //IE 浏览器
    if (document.selection) {
    myField.focus();
    sel = document.selection.createRange();
    sel.text = myValue;
    sel.select();
    }
    //FireFox、Chrome等
    else if (myField.selectionStart || myField.selectionStart == '0') {
    var startPos = myField.selectionStart,
    endPos = myField.selectionEnd,

    // 保存滚动条
    restoreTop = myField.scrollTop,
    fieldVal = myField.value;

    myField.value = fieldVal.substring(0, startPos) + myValue + fieldVal.substring(endPos, fieldVal.length);

    if (restoreTop > 0) {
    myField.scrollTop = restoreTop;
    }

    myField.focus();
    myField.selectionStart = startPos + myValue.length;
    myField.selectionEnd = startPos + myValue.length;
    } else {
    myField.value += myValue;
    myField.focus();
    }
    }

    /**
    * 在光标处开始退格
    * @param {[DOM对象或者其ID]} field [可输入的域对象或者ID]
    * @return {[type]} [description]
    */
    function backspaceAtCursor(field) {
    var myField ;
    if("string" === typeof field) {
    myField = document.getElementById(field);
    } else if('HTMLTextAreaElement' === field.constructor.name) {
    myField = field;
    } else {
    return;
    }

    //IE 浏览器
    if (document.selection) {
    myField.focus();
    sel = document.selection.createRange();
    sel.text = '';
    /*var _text = sel.text;
    sel.text = _text && _text.substr(0, _text.length - 1); */
    sel.select();
    }
    //FireFox、Chrome等
    else if (myField.selectionStart || myField.selectionStart == '0') {
    var startPos = myField.selectionStart,
    endPos = myField.selectionEnd,

    // 保存滚动条
    restoreTop = myField.scrollTop,
    fieldVal = myField.value;

    if(startPos === endPos) {
    var newStart = (startPos === 0 ? 0 : startPos - 1);
    myField.value = fieldVal.substring(0, newStart)
    + fieldVal.substring(endPos, fieldVal.length);

    myField.selectionStart = newStart;
    myField.selectionEnd = newStart;
    } else {
    myField.value = fieldVal.substring(0, startPos) + fieldVal.substring(endPos, fieldVal.length);
    myField.selectionEnd = startPos;
    }

    if (restoreTop > 0) {
    myField.scrollTop = restoreTop;
    }

    myField.focus();

    } else {
    myField.value += myValue;
    myField.focus();
    }
    }

    当能力支撑不了野心时,就该静下心来学习!
  • 相关阅读:
    树、森林和二叉树的转换
    弱校ACM奋斗史
    安徽科技学院2016-2017-1学期2013信息与计算科学12班期末测试_题解
    安徽省2016“京胜杯”程序设计大赛_K_纸上谈兵
    安徽省2016“京胜杯”程序设计大赛_J_YZK的大别墅
    安徽省2016“京胜杯”程序设计大赛_I_恶魔A+B
    安徽省2016“京胜杯”程序设计大赛_H_单身晚会
    安徽省2016“京胜杯”程序设计大赛_G_木条染色
    安徽省2016“京胜杯”程序设计大赛_F_吃在工大
    LeetCode() Merge Intervals 还是有问题,留待,脑袋疼。
  • 原文地址:https://www.cnblogs.com/1234cjq/p/6558645.html
Copyright © 2011-2022 走看看