/** * 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().createBookmark(); $G('search-msg').innerHTML = lang.getEnd; editor.selection.getRange().moveToBookmark(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');