从我发布了dedecms仿站教程后,有很大朋友都加入了本群进行学习以及询问很多关于dedecms仿站相关的问题,最近发现群里有人问,仿站时dedecms搜索功能怎么仿,其实对于新手来说可能是个困难的问题,今天我就以仿搜索功能写个教程,希望大家在仿站过程中遇到这样的问题能通过此文章解决。
代码分析 那么我们先来看目前dedecms最新版5.6版本中模板中搜索的代码,其中包含了JS和HTML代码 1、JS代码 function check(){ if(document.formsearch.searchtype.value=="") document.formsearch.action="http://www.google.cn/custom" else document.formsearch.action="{dede:field name='phpurl'/}/search.php" } 2、HTML代码 <form name="formsearch" action="" onSubmit="check();"> <input type="hidden" name="domains" value="www.dedecms.com"> <div class="form"> <h4>搜索</h4> <input type="hidden" name="kwtype" value="0" /> <input name="q" type="text" class="search-keyword" id="search-keyword" value="在这里搜索..." onfocus="if(this.value=='在这里搜索...'){this.value='';}" onblur="if(this.value==''){this.value='在这里搜索...';}" /> <select name="searchtype" class="search-option" id="search-option"> <option value="" selected='1'>google搜索</option> <option value="titlekeyword">站内搜索</option> </select> <button type="submit" class="search-submit">搜索</button> </div> <input type="hidden" name="client" value="pub-9280232748837488"> <input type="hidden" name="forid" value="1"> <input type="hidden" name="ie" value="UTF-8"> <input type="hidden" name="oe" value="UTF-8"> <input type="hidden" name="safe" value="active"> <input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399; AH:center;BGC:FFFFFF;LBGC:336699;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1"> <input type="hidden" name="hl" value="zh-CN"> </form> 可以从上面的代码中看出,dedecms默认的模板搜索代码js中check()方法来判断表单中的select,而且我们可以看出其中有很多隐藏的HTML标签input,大多都是谷歌搜索广告的代码,如下: <input type="hidden" name="client" value="pub-9280232748837488"> <input type="hidden" name="forid" value="1"> <input type="hidden" name="ie" value="UTF-8"> <input type="hidden" name="oe" value="UTF-8"> <input type="hidden" name="safe" value="active"> <input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFFFFF; LBGC:336699;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1"> <input type="hidden" name="hl" value="zh-CN"> 简化代码 通过上面的简单分析,我们可知我们可以直接将其中无用的代码直接删除,将代码进行简化,那么把HTML代码和JS代码结合起来就可以进行超级简单的简化了。最终我们可以得到如下简化的代码: <form name="formsearch" action="{dede:field name='phpurl'/}/search.php" > <input name="q" type="text" /> <button type="submit">搜索</button> </form>