/**
 * Created with JetBrains PhpStorm.
 * User: xuheng
 * Date: 12-9-26
 * Time: 下午12:29
 * To change this template use File | Settings | File Templates.
 *///清空上次查选的痕迹
editor.firstForSR = 0;
editor.currentRangeForSR = null;
//给tab注册切换事件
/**
 * tab点击处理事件
 * @param tabHeads
 * @param tabBodys
 * @param obj
 */
function clickHandler( tabHeads,tabBodys,obj ) {
    //head样式更改
    for ( var k = 0, len = tabHeads.length; k < len; k++ ) {
        tabHeads[k].className = "";
    }
    obj.className = "focus";
    //body显隐
    var tabSrc = obj.getAttribute( "tabSrc" );
    for ( var j = 0, length = tabBodys.length; j < length; j++ ) {
        var body = tabBodys[j],
            id = body.getAttribute( "id" );
        if ( id != tabSrc ) {
            body.style.zIndex = 1;
        } else {
            body.style.zIndex = 200;
        }
    }
}/**
 * TAB切换
 * @param tabParentId  tab的父节点ID或者对象本身
 */
function switchTab( tabParentId ) {
    var tabElements = $G( tabParentId ).children,
        tabHeads = tabElements[0].children,
        tabBodys = tabElements[1].children;    for ( var i = 0, length = tabHeads.length; i < length; i++ ) {
        var head = tabHeads[i];
        if ( head.className === "focus" )clickHandler(tabHeads,tabBodys, head );
        head.onclick = function () {
            clickHandler(tabHeads,tabBodys,this);
        }
    }
}
$G('searchtab').onmousedown = function(){
    $G('search-msg').innerHTML = '';
    $G('replace-msg').innerHTML = '';
}
//是否区分大小写
function getMatchCase(id) {
    return $G(id).checked ? true : false;
}
//查找
$G("nextFindBtn").onclick = function (txt, dir, mcase) {
    var findtxt = $G("findtxt").value, obj;
    if (!findtxt) {
        return false;
    }
    obj = {
        searchStr:findtxt,
        dir:1,
        casesensitive:getMatchCase("matchCase")
    };
    if (!frCommond(obj)) {
        var bk = editor.selection.getRange().createBook();
        $G('search-msg').innerHTML = lang.getEnd;
        editor.selection.getRange().moveToBook(bk).select();
    }
};
$G("nextReplaceBtn").onclick = function (txt, dir, mcase) {
    var findtxt = $G("findtxt1").value, obj;
    if (!findtxt) {
        return false;
    }
    obj = {
        searchStr:findtxt,
        dir:1,
        casesensitive:getMatchCase("matchCase1")
    };
    frCommond(obj);
};
$G("preFindBtn").onclick = function (txt, dir, mcase) {
    var findtxt = $G("findtxt").value, obj;
    if (!findtxt) {
        return false;
    }
    obj = {
        searchStr:findtxt,
        dir:-1,
        casesensitive:getMatchCase("matchCase")
    };
    if (!frCommond(obj)) {
        $G('search-msg').innerHTML = lang.getStart;
    }
};
$G("preReplaceBtn").onclick = function (txt, dir, mcase) {
    var findtxt = $G("findtxt1").value, obj;
    if (!findtxt) {
        return false;
    }
    obj = {
        searchStr:findtxt,
        dir:-1,
        casesensitive:getMatchCase("matchCase1")
    };
    frCommond(obj);
};
//替换
$G("repalceBtn").onclick = function () {
    var findtxt = $G("findtxt1").value.replace(/^\s|\s$/g, ""), obj,
        replacetxt = $G("replacetxt").value.replace(/^\s|\s$/g, "");
    if (!findtxt) {
        return false;
    }
    if (findtxt == replacetxt || (!getMatchCase("matchCase1") && findtxt.toLowerCase() == replacetxt.toLowerCase())) {
        return false;
    }
    obj = {
        searchStr:findtxt,
        dir:1,
        casesensitive:getMatchCase("matchCase1"),
        replaceStr:replacetxt
    };
    frCommond(obj);
};
//全部替换
$G("repalceAllBtn").onclick = function () {
    var findtxt = $G("findtxt1").value.replace(/^\s|\s$/g, ""), obj,
        replacetxt = $G("replacetxt").value.replace(/^\s|\s$/g, "");
    if (!findtxt) {
        return false;
    }
    if (findtxt == replacetxt || (!getMatchCase("matchCase1") && findtxt.toLowerCase() == replacetxt.toLowerCase())) {
        return false;
    }
    obj = {
        searchStr:findtxt,
        casesensitive:getMatchCase("matchCase1"),
        replaceStr:replacetxt,
        all:true
    };
    var num = frCommond(obj);
    if (num) {
        $G('replace-msg').innerHTML = lang.countMsg.replace("{#count}", num);
    }
};
//执行
var frCommond = function (obj) {
    return editor.execCommand("searchreplace", obj);
};
switchTab("searchtab");

解决方案 »

  1.   

    /**
     * Created with JetBrains PhpStorm.
     * User: xuheng
     * Date: 12-9-26
     * Time: 下午12:29
     * To change this template use File | Settings | File Templates.
     *///清空上次查选的痕迹
    editor.firstForSR = 0;
    editor.currentRangeForSR = null;
    //给tab注册切换事件
    /**
     * tab点击处理事件
     * @param tabHeads
     * @param tabBodys
     * @param obj
     */
    function clickHandler( tabHeads,tabBodys,obj ) {
        //head样式更改
        for ( var k = 0, len = tabHeads.length; k < len; k++ ) {
            tabHeads[k].className = "";
        }
        obj.className = "focus";
        //body显隐
        var tabSrc = obj.getAttribute( "tabSrc" );
        for ( var j = 0, length = tabBodys.length; j < length; j++ ) {
            var body = tabBodys[j],
                id = body.getAttribute( "id" );
            if ( id != tabSrc ) {
                body.style.zIndex = 1;
            } else {
                body.style.zIndex = 200;
            }
        }
    }/**
     * TAB切换
     * @param tabParentId  tab的父节点ID或者对象本身
     */
    function switchTab( tabParentId ) {
        var tabElements = $G( tabParentId ).children,
            tabHeads = tabElements[0].children,
            tabBodys = tabElements[1].children;    for ( var i = 0, length = tabHeads.length; i < length; i++ ) {
            var head = tabHeads[i];
            if ( head.className === "focus" )clickHandler(tabHeads,tabBodys, head );
            head.onclick = function () {
                clickHandler(tabHeads,tabBodys,this);
            }
        }
    }
    $G('searchtab').onmousedown = function(){
        $G('search-msg').innerHTML = '';
        $G('replace-msg').innerHTML = '';
    }
    //是否区分大小写
    function getMatchCase(id) {
        return $G(id).checked ? true : false;
    }
    //查找
    $G("nextFindBtn").onclick = function (txt, dir, mcase) {
        var findtxt = $G("findtxt").value, obj;
        if (!findtxt) {
            return false;
        }
        obj = {
            searchStr:findtxt,
            dir:1,
            casesensitive:getMatchCase("matchCase")
        };
        if (!frCommond(obj)) {
            var bk = editor.selection.getRange().createBook();
            $G('search-msg').innerHTML = lang.getEnd;
            editor.selection.getRange().moveToBook(bk).select();
        }
    };
    $G("nextReplaceBtn").onclick = function (txt, dir, mcase) {
        var findtxt = $G("findtxt1").value, obj;
        if (!findtxt) {
            return false;
        }
        obj = {
            searchStr:findtxt,
            dir:1,
            casesensitive:getMatchCase("matchCase1")
        };
        frCommond(obj);
    };
    $G("preFindBtn").onclick = function (txt, dir, mcase) {
        var findtxt = $G("findtxt").value, obj;
        if (!findtxt) {
            return false;
        }
        obj = {
            searchStr:findtxt,
            dir:-1,
            casesensitive:getMatchCase("matchCase")
        };
        if (!frCommond(obj)) {
            $G('search-msg').innerHTML = lang.getStart;
        }
    };
    $G("preReplaceBtn").onclick = function (txt, dir, mcase) {
        var findtxt = $G("findtxt1").value, obj;
        if (!findtxt) {
            return false;
        }
        obj = {
            searchStr:findtxt,
            dir:-1,
            casesensitive:getMatchCase("matchCase1")
        };
        frCommond(obj);
    };
    //替换
    $G("repalceBtn").onclick = function () {
        var findtxt = $G("findtxt1").value.replace(/^\s|\s$/g, ""), obj,
            replacetxt = $G("replacetxt").value.replace(/^\s|\s$/g, "");
        if (!findtxt) {
            return false;
        }
        if (findtxt == replacetxt || (!getMatchCase("matchCase1") && findtxt.toLowerCase() == replacetxt.toLowerCase())) {
            return false;
        }
        obj = {
            searchStr:findtxt,
            dir:1,
            casesensitive:getMatchCase("matchCase1"),
            replaceStr:replacetxt
        };
        frCommond(obj);
    };
    //全部替换
    $G("repalceAllBtn").onclick = function () {
        var findtxt = $G("findtxt1").value.replace(/^\s|\s$/g, ""), obj,
            replacetxt = $G("replacetxt").value.replace(/^\s|\s$/g, "");
        if (!findtxt) {
            return false;
        }
        if (findtxt == replacetxt || (!getMatchCase("matchCase1") && findtxt.toLowerCase() == replacetxt.toLowerCase())) {
            return false;
        }
        obj = {
            searchStr:findtxt,
            casesensitive:getMatchCase("matchCase1"),
            replaceStr:replacetxt,
            all:true
        };
        var num = frCommond(obj);
        if (num) {
            $G('replace-msg').innerHTML = lang.countMsg.replace("{#count}", num);
        }
    };
    //执行
    var frCommond = function (obj) {
        return editor.execCommand("searchreplace", obj);
    };
    switchTab("searchtab"); 我帮你优化下格式