www.gusucode.com > Carbon Forum PHP轻论坛系统 v3.6.5源码程序 > Carbon-Forum-3.6.5/static/editor/dialogs/searchreplace/searchreplace.js

    /**
 * 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");