老白说真话|LaoBai's Blog

IT.读书.互联网.精神生活

今天介绍的Blog站内搜索,最早我是在dodo的Blog中看到的。

我对那篇文章进行了简单研究,作了一点儿无关紧要的修改,就变成今天的这篇内容。

在介绍用Google实现站内搜索的第一篇Blog中,我们说过,那个方法的最大好处是采用JavaScript的事件取代了Form提交方式。

这是由于Donews天生条件造成的,由于Donews的Blog本身页面是装在一个Form里的,因此,通过Form提交方式进行交互处理,在Donews Blog中都很有难度。

但今天的方法,是通过强制结束原Form的方法做了点手脚,因此,称为小花招再恰当不过了。

对于在Donews Blog中添加Google Adsense的同学,都会发现,只能使用一种服务。本来,Google Adsense是提供两种服务的,一个是AdSense for content,一个是 AdSense for search。但是,AdSense for search的代码也是通过Form提交的方式实现的,因此,直接复制到Donews中是不能正确工作的。

但如果你能够理解今天的方法,理论上,是可以通过改变代码,在Donews网页中添加 AdSense for search的功能的。考虑到我没有那么贪心,因此,就没有花时间进行尝试和测试。而且,原理上,Google声称改变其广告代码是被禁止的行为。但我想,如果你能看懂今天的这段代码,那么自己试验一下,应该也不是难事。

为Donews Blog添加Google站内搜索的第二种方法的代码如下:

<script language="JavaScript">
<!--
document.write("</form><h3>站内搜索 By Google</h3><FORM method=GET action=\"http://www.google.com/search\">");
document.write("<IMG SRC=http://www.google.com/logos/Logo_25wht.gif border=0>");

document.write("<INPUT TYPE=hidden name=ie value=utf-8>");
document.write("<INPUT TYPE=hidden name=oe value=utf-8>");
document.write("<INPUT TYPE=hidden name=\"hl\" value=\"zh-CN\">");

document.write("<INPUT TYPE=text name=q size=20 maxlength=255 value=\"\"><br>");
document.write("<INPUT TYPE=submit name=btnG VALUE=\"搜索\">");
document.write("");
document.write("<INPUT TYPE=hidden name=domains value=\"blog.donews.com/laobai\">");
document.write("<INPUT TYPE=hidden name=sitesearch value=\"blog.donews.com/laobai\" checked><br>");

document.write("</FORM><form method=post id=form2 name=form2 onsubmit=chggo()>");
document.write("<input type=\"hidden\" name=\"__VIEWSTATE\" value=\"\" />");
function chggo(){
document.getElementById("form2").action=document.getElementById("Form1").action
}
//-->
</script>

注意,把代码复制到你的公告栏中后,将两处黑体字blog.donews.com/laobai,换成你自己的Blog首页地址。

 

后记:

Donews Blog小花招10--Blog站内搜索(1)发表后,引来了一系列的小故事。

1、有人发现EncodeUtf8那个函数很有用,偷走了;

2、webleon发现代码中有Google的广告信息,我给去掉了;

3、keso声明那段代码是Ben提供的;

4、ben站出来声明对那段代码拥有CC版权;

5、我又一次仔细的看了看那段代码,并进行了一些测试,发现在中文操作环境里,UTF8那个函数也不是必须的,因此进一步把Ben的代码简化如下:

<h3>Google</h3>
<script language="javascript">
function search () {
var q=document.getElementsByName("q")[0].value;

var link="http://www.google.com/custom?domains=" + website + "&sa=Search&sitesearch=" + website + "&ie=UTF-8&oe=UTF-8&hl=zh-CN" + "&q=" + q ;

window.open(link);
}
</script>
<script language="javascript">
var website="http://www.donews.net/keso";
</script>
<input type="text" name="q" />
<input type="button" value="Google本站" onclick="javascript:search()"/>

 

此主题的相关链接:

《Donews Blog的非官方使用指北》标准操作系列

《Donews Blog的小花招》系列







Trackback: http://tb.donews.net/TrackBack.aspx?PostId=577655


[点击此处收藏本文]  发表于2005年10月05日 6:39 PM




正在读取评论……

发表评论

大名:
网址:
验证码
评论 
   

news

 

  敬请订阅我的网志:
  从FeedSky订阅我的网志:
  【新手订阅指南】
  通过bloglines订阅
  通过抓虾订阅
  通过和讯博揽订阅
  通过Google订阅
  给我留言
  my flickr
  我的豆瓣
 
 
加入我的维信
 
 
 
  除非特别声明,本站采用 许可。
  最佳显示效果:1280*1024;32位真彩

通过FeedSky订阅

以下订阅方式由FeedSky提供。

抓虾
pageflakes
Rojo
google reader
netvibes
my yahoo
newsgator
bloglines
鲜果
哪吒
有道


My Donews IT装备


 

最近更新