javascript 页面划词搜索JS


Posted in Javascript onSeptember 28, 2009

基于Jquery修改,以下为全部脚本

//划词搜索 
var GLS = {}; 
GLS.startObj = null; 
GLS.isdb = false; 
GLS.allow = true; 
GLS.isallow = function() { 
if (GLS.allow) { 
GLS.allow = false; 
alert('Google搜索已关闭'); 
} 
else { 
GLS.allow = true; 
alert('Google搜索已打开'); 
} 
}; 
GLS.dblclick = function() { 
GLS.isdb = true; 
}; 
GLS.mousedown = function(evt) { 
evt = (evt) ? evt : ((window.event) ? window.event : ""); 
if (evt) { 
GLS.startObj = (evt.target) ? evt.target : evt.srcElement; 
} 
}; 
GLS.mouseup = function(evt) { 
var obj; 
var strlen; 
evt = (evt) ? evt : ((window.event) ? window.event : ""); 
if (evt) { 
obj = (evt.target) ? evt.target : evt.srcElement; 
strlen = window.getSelection ? window.getSelection().toString() : document.selection.createRange().text; 
} 
var str = ""; 
if (obj.tagName != "A" && obj.tagName != "INPUT" && obj == GLS.startObj && !GLS.isdb && GLS.allow) { 
if (strlen.length > 0) { 
str = strlen; 
} 
} 
GLS.search(str, evt); 
GLS.isdb = false; 
}; 
GLS.search = function(str, evt) { 
var obj = $("#GLSearch"); 
var sDivWidth = 88; //检索框“Google搜索”的宽度 
if (str.toString().length > 0) { 
var windowWidth; //窗口的宽 
//取得窗口的宽 
if (self.innerWidth) { 
windowWidth = self.innerWidth; 
} else if (document.documentElement && document.documentElement.clientWidth) { 
windowWidth = document.documentElement.clientWidth; 
} else if (document.body) { 
windowWidth = document.body.clientWidth; 
} 
obj.css({ 'display': 'block', 'position': 'absolute', 'zindex': '10000' }); 
var rX, rX, wT; 
if ($.browser.msie) { 
wT = (evt.clientX + sDivWidth) - windowWidth; 
rY = document.documentElement.scrollTop + evt.clientY; 
rX = document.documentElement.scrollLeft + evt.clientX; 
rY = (evt.clientY < 25) ? rY + 5 : rY - 25; 
rX = (wT > 0) ? rX - wT : rX + 5; 
} 
else { 
var sT = (document.documentElement.scrollTop > 0) ? document.documentElement.scrollTop : document.body.scrollTop; 
wT = (evt.pageX + sDivWidth) - windowWidth; 
rY = ((evt.pageY - sT) < 25) ? evt.pageY + 5 : evt.pageY - 25; 
rX = (wT > 0) ? evt.pageX - wT : evt.pageX + 5; 
} 
obj.css("top", rY); 
obj.css("left", rX); 
obj.html("<a class='GL_s' target='_blank' href='http://www.google.com/search?ie=UTF-8&oe=UTF-8&q=" + encodeURIComponent(str) + "'>Google搜索</a>"); 
} 
else { 
obj.css("display", "none"); 
} 
}; //页面加载 
$(document).ready(function() { 
$(document.body).append("<div id='GLSearch'></div>"); 
$(document).mousedown(GLS.mousedown).dblclick(GLS.dblclick).mouseup(GLS.mouseup); 
});

附上CSS/*search*/
a.GL_s{width:68px;height:20px;display:block;border:solid 1px #2b7ab7;line-height:20px;padding-left:18px;color:#084f10;font-size:12px;font-weight:bold;background:url(search.gif) no-repeat left;text-decoration:none;} 
a.GL_s:link{filter:alpha(opacity=71);-moz-opacity:0.7;opacity: 0.7;} 
a.GL_s:hover{filter:alpha(opacity=100);-moz-opacity:1.0;opacity: 1.0;}
Javascript 相关文章推荐
EasyUI 中 MenuButton 的使用方法
Jul 14 Javascript
form表单中去掉默认的enter键提交并绑定js方法实现代码
Apr 01 Javascript
Jquery 实现checkbox全选方法
Jan 28 Javascript
jQuery Ajax调用WCF服务详细教程
Mar 31 Javascript
jquery在ie7下选择器的问题导致append失效的解决方法
Jan 10 Javascript
jQuery中Nicescroll滚动条插件的用法
Nov 10 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
Jan 10 Javascript
JavaScript实现父子dom同时绑定两个点击事件,一个用捕获,一个用冒泡时执行顺序的方法
Mar 30 Javascript
《javascript少儿编程》location术语总结
May 27 Javascript
react中实现搜索结果中关键词高亮显示
Jul 31 Javascript
Layui Form 自定义验证的实例代码
Sep 14 Javascript
JS原型对象操作实例分析
Jun 06 Javascript
jquery 模式对话框终极版实现代码
Sep 28 #Javascript
javascript的onchange事件与jQuery的change()方法比较
Sep 28 #Javascript
支持ie与FireFox的剪切板操作代码
Sep 28 #Javascript
javaScript 简单验证代码(用户名,密码,邮箱)
Sep 28 #Javascript
javascript parseInt 大改造
Sep 27 #Javascript
网页自动跳转代码收集
Sep 27 #Javascript
JavaScript中Object和Function的关系小结
Sep 26 #Javascript
You might like
解决MySQL中文输出变成问号的问题
2008/06/05 PHP
smarty模板引擎从php中获取数据的方法
2015/01/22 PHP
jQuery 扩展对input的一些操作方法
2009/10/30 Javascript
JavaScript 错误处理与调试经验总结
2010/08/10 Javascript
简单的jquery拖拽排序效果实现代码
2011/09/20 Javascript
Nodejs中自定义事件实例
2014/06/20 NodeJs
jQuery动态效果显示人物结构关系图的方法
2015/05/07 Javascript
Vue.js实现简单ToDoList 前期准备(一)
2016/12/01 Javascript
angular分页指令操作
2017/01/09 Javascript
Angularjs2不同组件间的通信实例代码
2017/05/06 Javascript
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
npm配置国内镜像资源+淘宝镜像的方法
2018/09/07 Javascript
js实现微信聊天界面
2020/08/09 Javascript
python私有属性和方法实例分析
2015/01/15 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
2017/09/08 Python
windows下python安装pip图文教程
2018/05/25 Python
Python实现正整数分解质因数操作示例
2018/08/01 Python
django 连接数据库 sqlite的例子
2019/08/14 Python
python实现的config文件读写功能示例
2019/09/24 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
2020/02/29 Python
在django admin详情表单显示中添加自定义控件的实现
2020/03/11 Python
Python基于read(size)方法读取超大文件
2020/03/12 Python
Python爬虫小例子——爬取51job发布的工作职位
2020/07/10 Python
HTML5 CSS3给网站设计带来出色效果
2009/07/16 HTML / CSS
COS美国官网:知名服装品牌
2019/04/08 全球购物
毕业生个人求职信范文分享
2014/01/05 职场文书
2014年关于两会精神的心得体会
2014/03/17 职场文书
小学师德标兵先进事迹材料
2014/05/25 职场文书
竞聘报告优秀范文
2014/11/06 职场文书
英语教师个人总结
2015/02/09 职场文书
2015年语文教研组工作总结
2015/05/23 职场文书
指导老师鉴定意见
2015/06/05 职场文书
干部培训简讯
2015/07/20 职场文书
一篇文章搞懂python混乱的切换操作与优雅的推导式
2021/08/23 Python
mysql函数全面总结
2021/11/11 MySQL
关于Redis的主从复制及哨兵问题
2022/06/16 Redis