Extjs划词搜索
来源:互联网 发布:mac eclipse android 编辑:程序博客网 时间:2024/04/28 06:24
划词搜索Extjs实现方式,支持IE、FireFox浏览器。根据http://www.javascriptcn.com/code/20071106/5.html代码改进而成。希望对实现划词搜索的兄弟们有所帮助。
在需要的jsp页面中引用(要在body中,否则会出错):
<script type="text/javascript" src="js/ZonedWordSearch.js"></script>
简化代码源码如下:
Ext.ux.ZonedWordSearch = function() {
var zwDiv, starobj, isdb = false, allow = true;
return {
init : function() {
zwDiv = Ext.DomHelper.insertFirst(document.body, {
id : "ZonedWordSearchDivId"
}, true);
// 原来是自己的div点击事件处理,实现系统的智能搜索,这里去掉,用原文章的innerHTML实现google搜索
if (Ext.isIE) {
document.onmousedown = this.recordobj;
document.ondblclick = this.dblclick;
document.onmouseup = this.showselect;
} else {
window.onmousedown = this.recordobj;
window.ondblclick = this.dblclick;
window.onmouseup = this.showselect;
}
},
dblclick : function() {
isdb = true;
},
recordobj : function(evt) {
evt = (evt) ? evt : ((window.event) ? window.event : "")
if (evt) {
starobj = (evt.target) ? evt.target : evt.srcElement
}
},
showselect : function(evt) {
var obj;
var strlen;
evt = (evt) ? evt : ((window.event) ? window.event : "")
if (evt) {
if (evt.target) {
obj = evt.target;
var selection = window.getSelection();
if (selection && selection.focusNode && obj != selection.focusNode.parentNode) {
zwDiv.hide();
return;
}
strlen = selection.toString();
} else {
obj = event.srcElement;
strlen = document.selection.createRange().text;
}
}
var str = "";
if (obj.tagName != "A" && obj.tagName != "INPUT" && obj == starobj
&& !isdb && allow) {
if (strlen.length > 0) {
str = strlen;
}
}
tangram.search.ZonedWordSearch.searchdiv(str, evt);
isdb = false;
},
searchdiv : function(str, evt) {
var obj = zwDiv;
if (str.toString().length == 0) {
obj.hide();
return;
}
obj.applyStyles("width:60px;position:absolute;display:block;z-index:999");
obj.setX(evt.clientX + 5);
obj.setY(evt.clientY - 25);
obj.dom.innerHTML ="<a target=_blank href=http://www.google.com/search?ie=UTF-8&oe=UTF -8&q="+str+" style='BORDER-RIGHT: royalblue thin solid; BORDER-TOP: royalblue thin solid; FONT-WEIGHT: bold; BORDER-LEFT: royalblue thin solid; CLIP: rect(auto auto auto auto); COLOR: #ffffff; BORDER-BOTTOM: royalblue thin solid; BACKGROUND-COLOR: inactivecaption; TEXT-DECORATION: none'>划词搜索!</a>";
obj.show();
}
}
}();
Ext.onReady(Ext.ux.ZonedWordSearch.init, Ext.ux.ZonedWordSearch);
- Extjs划词搜索
- 划词搜索原理
- 划词搜索示例
- 划词搜索示例
- QQ2010的划词搜索
- javascript实现划词标记+划词搜索功能
- javascript实现划词标记划词搜索功能
- javascript实现划词标记+划词搜索功能
- javascript实现划词标记+划词搜索功能
- 流氓软件“划词搜索”、“千橡互联”删除小记
- Javascript实现划词标记+划词搜索功能代码实例
- javascript实现划词标记划词搜索功能修正版,兼容IE及FF
- javascript实现划词标记+划词搜索功能代码实例
- 该死的划词搜索,该死的中搜
- 划词搜索被ewido视为高风险Adware.wSerarch
- 给自己的博客添加【划词搜索】
- 我的博客添加了 划词搜索 网页快照!
- 关于腾讯2010的划词搜索的思考
- 由词根背单词之2
- U-Boot源代码阅读笔记(一) —— 对start.S的分析
- 如何把 vc 6 调试器设置成 系统默认调试器?
- 一个低学历者的辛酸程序路(转载)
- response.writeFile出现乱码 中文文件内容出现乱码
- Extjs划词搜索
- ThoughtWorks专访:一个没有经理室的公司(图)
- VS2005 多线程问题--窗体中的线程安全调用
- 珊瑚虫QQ作者昨正式上诉 称原判依据事实不清
- 要查询的某表的某列,这样的pl/sql怎么写啊
- Csdn我又回来了
- (转) 经典正则表达式
- 摩托罗拉将分拆为两家独立上市公司
- CTO的眼界到底有多宽