易优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日《计算机软件保护条例》为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。鉴于此,本站希望大家严格按此说明研究软件,不得上线运营,如需商业运营请到正规渠道购买,如侵犯到您的权益,请联系我们!适当收费为网站运营需要成本。
根据2013年1月30日《计算机软件保护条例》为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。鉴于此,本站希望大家严格按此说明研究软件,不得上线运营,如需商业运营请到正规渠道购买,如侵犯到您的权益,请联系我们!适当收费为网站运营需要成本。