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 相关文章推荐
javascript在一段文字中的光标处插入其他文字
Aug 26 Javascript
基于jquery的loading 加载提示效果实现代码
Sep 01 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
May 05 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
Nov 29 Javascript
JQuery日历插件My97DatePicker日期范围限制
Jan 20 Javascript
基于Angularjs实现分页功能
May 30 Javascript
three.js快速入门【推荐】
Jan 21 Javascript
node使用UEditor富文本编辑器的方法实例
Jul 11 Javascript
微信小程序实现天气预报功能
Jul 18 Javascript
加快Vue项目的开发速度的方法
Dec 12 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
Jun 29 Javascript
layui实现下拉框三级联动
Jul 26 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
PHP对字符串的递增运算分析
2010/08/08 PHP
php中smarty区域循环的方法
2015/06/11 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
2016/07/18 PHP
PHP GD库相关图像生成和处理函数小结
2016/09/30 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
2019/09/30 PHP
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
2012/07/31 Javascript
关于Javascript作用域链的八点总结
2013/12/06 Javascript
javascript省市级联功能实现方法实例详解
2015/10/20 Javascript
JS验证逗号隔开可以是中文字母数字
2016/04/22 Javascript
jquery ajax局部加载方法详解(实现代码)
2016/05/12 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
2016/06/13 Javascript
使用bootstrap实现多窗口和拖动效果
2016/09/22 Javascript
JS优化与惰性载入函数实例分析
2017/04/06 Javascript
实例详解JSON取值(key是中文或者数字)方式
2017/08/24 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
2018/04/17 jQuery
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
ES10的13个新特性示例(小结)
2019/09/23 Javascript
jstree中的checkbox默认选中和隐藏示例代码
2019/12/29 Javascript
解决vue页面渲染但dom没渲染的操作
2020/07/27 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
2020/12/10 Javascript
Python 字典(Dictionary)操作详解
2014/03/11 Python
Python中的ctime()方法使用教程
2015/05/22 Python
Python列表切片用法示例
2017/04/19 Python
Django 使用logging打印日志的实例
2018/04/28 Python
python爬虫实例之获取动漫截图
2020/05/31 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
2020/08/02 Python
python 下划线的不同用法
2020/10/24 Python
data:image data url 文件转为Blob上传后端的方法
2019/07/16 HTML / CSS
德国的大型美妆个护电商:Flaconi
2020/06/26 全球购物
Myprotein中国网站:欧洲畅销运动营养品牌
2021/02/11 全球购物
构造方法和其他方法的区别?怎么调用父类的构造方法
2013/09/22 面试题
编程输出如下图形
2013/11/24 面试题
大学生的创业计划书就该这么写
2014/01/30 职场文书
学术会议开幕词
2016/03/03 职场文书
python中24小时制转换为12小时制的方法
2021/06/18 Python