将一个js代码修改了一下,再整合到search.htm模板里,成功地解决了这一问题。
另外还增加了一个循环判断效果,即使搜索的结果标题出现灰白相间的背景颜色对比,而鼠标移动到搜索结果标题上又有高亮背景出现。
只需要修改search.htm这个模板文件(template/default/search.htm):
一、在最上部这段代码:
<!--
<?php
print <<<EOT
-->
在这段代码之下,加上以下这段样式和JS代码:
<style type="text/css">
tbody tr.on {background:#dbd9d9;}
tbody tr.on td{
color:#ff0000;
}
tbody tr.on td a{
color:#ff0000;
}
</style>
<script type="text/java script">
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}
function getElementsByClassName(className, tag, elm){
var testClass = new RegExp("(^|s)" + className + "(s|$)");
var tag = tag || "*";
var elm = elm || document;
var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
var returnElements = [];
var current;
var length = elements.length;
for(var i=0; i<length; i++){
current = elements[i];
if(testClass.test(current.className)){
returnElements.push(current);
}
}
return returnElements;
}
function addClassName(elm, className){
var currentClass = elm.className;
if(!new RegExp(("(^|s)" + className + "(s|$)"), "i").test(currentClass)){
elm.className = currentClass + ((currentClass.length > 0)? " " : "") + className;
}
return elm.className;
}
function removeClassName(elm, className){
var classToRemove = new RegExp(("(^|s)" + className + "(s|$)"), "i");
elm.className = elm.className.replace(classToRemove, "").replace(/^s+|s+$/g, "");
return elm.className;
}
function makeTheTableHeadsHighlight() {
var table = document.getElementById('rockartists');
var tbody = table.getElementsByTagName('tbody');
var tbodytds = table.getElementsByTagName('tr');
for (var i=0; i<tbodytds.length; i++) {
tbodytds[i].oldClassName = tbodytds[i].className;
tbodytds[i].onmouseover = function() {
addClassName(this,'on');
}
tbodytds[i].onmouseout = function() {
removeClassName(this,'on');
}
}
}
addLoadEvent(makeTheTableHeadsHighlight);
</script>
二、再找下面的这段代码:
<table width="100%" border="0" cellspacing="1" cellpadding="3">
<!--
EOT;
//文章查询结果
foreach($listdb AS $key=>$rs){
print <<<EOT
-->
<tr>
<td width="5%">$rs[aid]</td>
<td width="51%">·<a href="bencandy.php?fid=$rs[fid]&id=$rs[aid]" target="_blank" title='$rs[full_title]'>$rs[title]</a></td>
<td width="17%">[<a href="list.php?fid=$rs[fid]" target="_blank">{$rs[fname]}</a>]</td>
<td width="10%">{$rs[username]}</td>
<td width="17%">({$rs[posttime]})</td>
</tr>
首先给这个表格加一个id,在table里加上id="rockartists" ;
分别在<tr>和</tr>上面和下面再加上<tbody>和</tbody>,因为上面的css和js都已经定义了tbody;
加上循环判断的代码(具体请下面代码对比一下便知);
给tbody加上背景的变量定义;
以下即为已经修改好的代码部分:
<table width="100%" border="0" cellspacing="1" cellpadding="3" id="rockartists">
<!--
EOT;
//文章查询结果
$pp=0;
foreach($listdb AS $key=>$rs){
$pp++;
$searchbg="#eaeaec";
if($pp%2==0){
$searchbg="";
}
print <<<EOT
-->
<tbody style="background:$searchbg">
<tr>
<td width="5%">$rs[aid]</td>
<td width="51%">·<a href="bencandy.php?fid=$rs[fid]&id=$rs[aid]" target="_blank" title='$rs[full_title]'>$rs[title]</a></td>
<td width="17%">[<a href="list.php?fid=$rs[fid]" target="_blank">{$rs[fname]}</a>]</td>
<td width="10%">{$rs[username]}</td>
<td width="17%">({$rs[posttime]})</td>
</tr>
</tbody>
这一步修改完毕就完成了,看看效果吧。
三、效果演示:
网友评论