You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
164 lines
4.5 KiB
164 lines
4.5 KiB
/** |
|
* 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"); |