易优CMS用户需要搜索高亮,就直接拿来分享了,代码未测试,欢迎尝试。


<script>
function keyLight(id, key, bgColor) {
	var oDiv = document.getElementById(id),
		sText = oDiv.innerHTML,
		bgColor = bgColor || "red",
		Colorr = Colorr || "white",
		sKey = "<span style='background-color: " + bgColor + ";color: " + Colorr + ";'>" + key + "</span>",
		num = -1,
		rStr = new RegExp(key, "g"),
		rHtml = new RegExp("<.*?>", "ig"), //匹配html元素
		aHtml = sText.match(rHtml); //存放html元素的数组
	sText = sText.replace(rHtml, '{~}'); //替换html标签
	sText = sText.replace(rStr, sKey); //替换key
	sText = sText.replace(/{~}/g, function() { //恢复html标签
		num++;
		return aHtml[num];
	});
	oDiv.innerHTML = sText;
}
var key1 = keyLight('result', '{$eyou.field.keywords}');
</script>

<script>
	function keyLight(id, key, bgColor) {
		var oDiv = document.getElementById(id),
			oChilds = oDiv.childNodes,
			bgColor = bgColor || "red",
			Colorr = Colorr || "white",
			sKey = "<span style='background-color: " + bgColor + ";color: " + Colorr + ";'>" + key + "</span>",
			rStr = new RegExp(key, "g");
		for (var i = 0; i < oChilds.length - 1; i++) {
			if (oChilds[i].nodeType == 3 && /s/.test(oChilds[i].nodeValue)) { //删除空白的节点
				oChilds[i].parentNode.removeChild(oChilds[i]);
			}
			oChilds[i].innerHTML = oChilds[i].innerHTML.replace(rStr, sKey); //替换key
		}
	}
	var key1 = keyLight('result', '{$eyou.field.keywords}');
</script>

方法来源网络。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
根据2013年1月30日《计算机软件保护条例》为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。鉴于此,本站希望大家严格按此说明研究软件,不得上线运营,如需商业运营请到正规渠道购买,如侵犯到您的权益,请联系我们!适当收费为网站运营需要成本。