JSP搜索结果关键字红色提醒
首先判断传递过来的是否多关键字 keyword为最初关键字
多关键字由空格分隔开
if(keyword.indexOf(" ")!=(-1)){
keywordjs=keyword.replaceAll(" ","+");
}else{
keywordjs=keyword;
}
然后在页面加入一个隐藏域keywordjs,加入value值为Java中处理好的字符串
<form name="keyform">
<input type="hidden" value=<%=keywordjs%> name="keywordjs" id="keywordjs">
</form>
最后通过JS获取隐藏域keywordjs的值,并将关键字红色提示
<script language="javascript" type="text/javascript">
var keyss = document.getElementById("keywordjs").value;
var keys = keyss.split("+");
var bookmark;
if(document.createRange){
var range = document.createRange();
}else{
var range = document.body.createTextRange();
bookmark = range.getBookmark();
}
var key;
for(var i = 0;key = keys[i];i++){
if(range.findText){
range.collapse(true);
range.moveToBookmark(bookmark);
while(range.findText(key)){
range.pasteHTML(range.text.fontcolor("#ff0000"));
}
}else{
var s,n;
s = window.getSelection();
s.collapse(document.body,0);
while(window.find(key)){
var n = document.createElement("SPAN");
n.style.color="#ff0000";
s.getRangeAt(0).surroundContents(n);
}
}
}
</script>
对于一些传递至JS会异常的特殊字符没有进行处理