【代码保留】怎样添加一个多选搜索引擎
2008-12-08 00:53
615 查看
刚刚明明是在看书的,结果家里来了一群客人JJWW,然后就上线了,然后一个什么都不会但是充满理想和幻想的人正在做着千秋大梦,说是要弄一个很多个搜索引擎的东西(话说几十年前就泛滥了)。……好吧,就友情协助帮忙写一个,现在把代码贴这边!
效果示意:
怎么样,着实很土吧?哈哈!
search_engine_assistant.js文件
1 function search_engine_assistant() {
2 this.create = function(items, textbox, button, redirectFunction) {
3 button.onclick = function() {
4 var ckitems = document.getElementsByName("__opt");
5 for (var i = 0; i < ckitems.length; i++) {
6 if (ckitems[i].checked) {
7 var url = ckitems[i].value.replace(ckitems[i].attributes["key"].nodeValue, textbox.value);
8 if(redirectFunction)
9 redirectFunction(url);
10 break;
11 }
12 }
13 };
14 for (var i = 0; i < items.length; i++) {
15 var item = this.createItem(i, items[i].text, items[i].url, items[i].key, items[i].container, items[i].selected, items[i].selectedCallback);
16 }
17
18 }
19
20 this.createItem = function(id, text, url, key, container, selected, selectedCallback) {
21 var selectedCallbackName = "__search_check_" + id;
22 if (selectedCallback) {
23 document.write("<script type=\"text/javascript\" language=\"javascript\">\nvar " + selectedCallbackName + " = " + selectedCallback.toLocaleString() + ";\n</script>");
24 }
25
26 var item = null;
27 if (container) {
28 var radio = "<input type=\"radio\" id=\"__opt_id\" name=\"__opt\" value=\"" + url + "\" key=\"" + key + "\" {checked} onclick=\"" + selectedCallbackName + "();\">" + text;
29 if (selected)
30 radio = radio.replace("{checked}", "checked");
31 else
32 radio = radio.replace("{checked}", "");
33
34 item = new Object();
35 item.body = radio;
36 item.key = key;
37 container.innerHTML += radio;
38 }
39 return item;
40 }
41 }
search.html文件:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>General Search </title>
<style type="text/css">
.search_panel_css
{
text-align: center;
margin-top: 130px;
}
.search_logo_css
{
margin-bottom: 40px;
}
.search_select_css
{
font-size:14px;
font-family:微软雅黑;
margin-bottom: 20px;
}
.search_text_css
{
width: 300px;
height: 26px;
font-size: 20px;
}
.search_button_css
{
font-family:微软雅黑;
margin-top: 20px;
width:120px;
height: 26px;
}
</style>
</head>
<body>
<div id="searchPanel" class="search_panel_css">
<img alt="" id="search_logo" src="images/example.gif" class="search_logo_css" /><br />
<span id="search_select" class="search_select_css"></span>
<br />
<input id="search_text" type="text" class="search_text_css" />
<input id="search_button" type="button" value="搜 索" class="search_button_css" />
</div>
</body>
<script language="javascript" type="text/javascript" src="search_engine_assistant.js"></script>
<script language="javascript" type="text/javascript">
var sea = new search_engine_assistant();
sea.create([
{
text: "本站",
url: "http://www.example.com/search/q={0}",
key: "{0}",
container: document.getElementById("search_select"),
selected: true,
selectedCallback: function() {
document.getElementById("search_logo").src = "images/example.gif";
document.getElementById("search_button").value = "搜索本站";
}
}, {
text: "百度",
url: "http://www.baidu.com/s?wd={0}",
key: "{0}",
container: document.getElementById("search_select"),
selected: false,
selectedCallback: function() {
document.getElementById("search_logo").src = "images/baidu.gif";
document.getElementById("search_button").value = "百度一下";
}
}, {
text: "谷歌",
url: "http://www.google.cn/search?hl=zh-CN&q={0}&btnG=Google+%E6%90%9C%E7%B4%A2&meta=&aq=f&oq=",
key: "{0}",
container: document.getElementById("search_select"),
selected: false,
selectedCallback: function() {
document.getElementById("search_logo").src = "images/google.gif";
document.getElementById("search_button").value = "谷歌更强大";
}
}, {
text: "搜狗",
url: "http://www.sogou.com/web?query={0}&_asf=www.sogou.com&_ast=1228659410&w=01019900&p=40040100",
key: "{0}",
container: document.getElementById("search_select"),
selected: false,
selectedCallback: function() {
document.getElementById("search_logo").src = "images/sogou.gif";
document.getElementById("search_button").value = "搜狗搜索";
}
}, {
text: "易搜",
url: "http://www.yisou.com/search:{0}",
key: "{0}",
container: document.getElementById("search_select"),
selected: false,
selectedCallback: function() {
document.getElementById("search_logo").src = "images/yisou.gif";
document.getElementById("search_button").value = "一搜就到";
}
}, {
text: "爱问",
url: "http://iask.sina.com.cn/search_engine/search_knowledge_engine.php?key={0}&classid=0&title=%B0%A2%CB%B9&gjss=0&x=29&y=12",
key: "{0}",
container: document.getElementById("search_select"),
selected: false,
selectedCallback: function() {
document.getElementById("search_logo").src = "images/iask.gif";
document.getElementById("search_button").value = "爱问才会赢";
}
}
],
document.getElementById("search_text"),
document.getElementById("search_button"),
function(url) {
window.open(url);
});
</script>
</html>
话说别人家做的都不是这样啦,呵呵,好处应该很明显,改动很微妙而且扩展性好,坏处就是代码多了点,还有浏览器要支持脚本。而且放到站点上,最好加一个escape(textbox.value),不过也无所谓了,就拿百度Google来说,就这样都把它们攻残了,还混啥呀!
继续看书!
效果示意:
怎么样,着实很土吧?哈哈!
search_engine_assistant.js文件
1 function search_engine_assistant() {
2 this.create = function(items, textbox, button, redirectFunction) {
3 button.onclick = function() {
4 var ckitems = document.getElementsByName("__opt");
5 for (var i = 0; i < ckitems.length; i++) {
6 if (ckitems[i].checked) {
7 var url = ckitems[i].value.replace(ckitems[i].attributes["key"].nodeValue, textbox.value);
8 if(redirectFunction)
9 redirectFunction(url);
10 break;
11 }
12 }
13 };
14 for (var i = 0; i < items.length; i++) {
15 var item = this.createItem(i, items[i].text, items[i].url, items[i].key, items[i].container, items[i].selected, items[i].selectedCallback);
16 }
17
18 }
19
20 this.createItem = function(id, text, url, key, container, selected, selectedCallback) {
21 var selectedCallbackName = "__search_check_" + id;
22 if (selectedCallback) {
23 document.write("<script type=\"text/javascript\" language=\"javascript\">\nvar " + selectedCallbackName + " = " + selectedCallback.toLocaleString() + ";\n</script>");
24 }
25
26 var item = null;
27 if (container) {
28 var radio = "<input type=\"radio\" id=\"__opt_id\" name=\"__opt\" value=\"" + url + "\" key=\"" + key + "\" {checked} onclick=\"" + selectedCallbackName + "();\">" + text;
29 if (selected)
30 radio = radio.replace("{checked}", "checked");
31 else
32 radio = radio.replace("{checked}", "");
33
34 item = new Object();
35 item.body = radio;
36 item.key = key;
37 container.innerHTML += radio;
38 }
39 return item;
40 }
41 }
search.html文件:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>General Search </title>
<style type="text/css">
.search_panel_css
{
text-align: center;
margin-top: 130px;
}
.search_logo_css
{
margin-bottom: 40px;
}
.search_select_css
{
font-size:14px;
font-family:微软雅黑;
margin-bottom: 20px;
}
.search_text_css
{
width: 300px;
height: 26px;
font-size: 20px;
}
.search_button_css
{
font-family:微软雅黑;
margin-top: 20px;
width:120px;
height: 26px;
}
</style>
</head>
<body>
<div id="searchPanel" class="search_panel_css">
<img alt="" id="search_logo" src="images/example.gif" class="search_logo_css" /><br />
<span id="search_select" class="search_select_css"></span>
<br />
<input id="search_text" type="text" class="search_text_css" />
<input id="search_button" type="button" value="搜 索" class="search_button_css" />
</div>
</body>
<script language="javascript" type="text/javascript" src="search_engine_assistant.js"></script>
<script language="javascript" type="text/javascript">
var sea = new search_engine_assistant();
sea.create([
{
text: "本站",
url: "http://www.example.com/search/q={0}",
key: "{0}",
container: document.getElementById("search_select"),
selected: true,
selectedCallback: function() {
document.getElementById("search_logo").src = "images/example.gif";
document.getElementById("search_button").value = "搜索本站";
}
}, {
text: "百度",
url: "http://www.baidu.com/s?wd={0}",
key: "{0}",
container: document.getElementById("search_select"),
selected: false,
selectedCallback: function() {
document.getElementById("search_logo").src = "images/baidu.gif";
document.getElementById("search_button").value = "百度一下";
}
}, {
text: "谷歌",
url: "http://www.google.cn/search?hl=zh-CN&q={0}&btnG=Google+%E6%90%9C%E7%B4%A2&meta=&aq=f&oq=",
key: "{0}",
container: document.getElementById("search_select"),
selected: false,
selectedCallback: function() {
document.getElementById("search_logo").src = "images/google.gif";
document.getElementById("search_button").value = "谷歌更强大";
}
}, {
text: "搜狗",
url: "http://www.sogou.com/web?query={0}&_asf=www.sogou.com&_ast=1228659410&w=01019900&p=40040100",
key: "{0}",
container: document.getElementById("search_select"),
selected: false,
selectedCallback: function() {
document.getElementById("search_logo").src = "images/sogou.gif";
document.getElementById("search_button").value = "搜狗搜索";
}
}, {
text: "易搜",
url: "http://www.yisou.com/search:{0}",
key: "{0}",
container: document.getElementById("search_select"),
selected: false,
selectedCallback: function() {
document.getElementById("search_logo").src = "images/yisou.gif";
document.getElementById("search_button").value = "一搜就到";
}
}, {
text: "爱问",
url: "http://iask.sina.com.cn/search_engine/search_knowledge_engine.php?key={0}&classid=0&title=%B0%A2%CB%B9&gjss=0&x=29&y=12",
key: "{0}",
container: document.getElementById("search_select"),
selected: false,
selectedCallback: function() {
document.getElementById("search_logo").src = "images/iask.gif";
document.getElementById("search_button").value = "爱问才会赢";
}
}
],
document.getElementById("search_text"),
document.getElementById("search_button"),
function(url) {
window.open(url);
});
</script>
</html>
话说别人家做的都不是这样啦,呵呵,好处应该很明显,改动很微妙而且扩展性好,坏处就是代码多了点,还有浏览器要支持脚本。而且放到站点上,最好加一个escape(textbox.value),不过也无所谓了,就拿百度Google来说,就这样都把它们攻残了,还混啥呀!
继续看书!
相关文章推荐
- 【代码保留】怎样添加一个多选搜索引擎
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- 怎样给电脑添加一个IP
- Javascript 数组添加一个 indexOf 方法的实现代码
- 用python做一个搜索引擎(Pylucene)的实例代码
- 仅需一行代码给网站添加一个功能
- 我有一个集合,如下,请问,我想判断里面有没有"world"这个元素,如果有,我就添加一个"javaee"元素,请写代码实现。
- 保留一个配置代码
- javascript操作两个选择列表(有两个列表,如何实现在一个列表通过双击和多选列表中内容添加到另一个列表. )
- ubuntu中怎样添加或删除一个PPA源
- 一个超级简单的IP地址搜索引擎(Asp.Net)事件代码12行
- 怎样以少于1000行代码写一个视频播放器-将电影文件中的视频帧存储为BMP图片
- Unreal中代码添加一个触发器
- 经常在网上搜怎样获得外网的ip,代码几乎都一样,但测试,都出现错误!最后找了一个既蠢既笨的终极解决方案
- 保留空间的容量用于为堆栈设置一个上限,这样就可以抓住代码中的循环递归错误