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 相关文章推荐
jQuery在IE下使用未闭合的xml代码创建元素时的Bug介绍
Jan 10 Javascript
JavaScript使用push方法添加一个元素到数组末尾用法实例
Apr 06 Javascript
JQuery工具函数汇总
Jun 15 Javascript
JS实现自动固定顶部的悬浮菜单栏效果
Sep 16 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
Sep 17 Javascript
JS简单实现DIV相对于浏览器固定位置不变的方法
Jun 17 Javascript
简单封装js的dom查询实例代码
Jul 08 Javascript
完美解决iview 的select下拉框选项错位的问题
Mar 02 Javascript
vue-router重定向不刷新问题的解决
Jun 25 Javascript
vue 中引用gojs绘制E-R图的方法示例
Aug 24 Javascript
怎样使你的 JavaScript 代码简单易读(推荐)
Apr 16 Javascript
sortable+element 实现表格行拖拽的方法示例
Jun 07 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仿QQ验证码的实例分析
2013/07/01 PHP
解析数组非数字键名引号的必要性
2013/08/09 PHP
PHP自动生成后台导航网址的最佳方法
2013/08/27 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
2014/11/28 PHP
php正则修正符用法实例详解
2016/12/29 PHP
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
JS幻灯片可循环播放可平滑旋转带滚动导航(自写)
2013/08/05 Javascript
生成二维码方法汇总
2014/12/26 Javascript
jQuery同步提交示例代码
2015/12/12 Javascript
实例讲解js验证表单项是否为空的方法
2016/01/09 Javascript
实例详解ECMAScript5中新增的Array方法
2016/04/05 Javascript
Struts2+jquery.form.js实现图片与文件上传的方法
2016/05/05 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
2016/05/31 Javascript
简单理解vue中实例属性vm.$els
2016/12/01 Javascript
关于bootstrap日期转化,bootstrap-editable的简单使用,bootstrap-fileinput的使用详解
2017/05/12 Javascript
javascript 玩转Date对象(实例讲解)
2017/07/11 Javascript
javascript 面向对象实战思想分享
2017/09/07 Javascript
实例详解Vue项目使用eslint + prettier规范代码风格
2018/08/20 Javascript
sortable+element 实现表格行拖拽的方法示例
2019/06/07 Javascript
JavaScript接口实现方法实例分析
2020/05/16 Javascript
python命令行参数sys.argv使用示例
2014/01/28 Python
Python中列表元素转为数字的方法分析
2016/06/14 Python
深入理解Python中装饰器的用法
2016/06/28 Python
python+selenium识别验证码并登录的示例代码
2017/12/21 Python
浅谈python爬虫使用Selenium模拟浏览器行为
2018/02/23 Python
Django Path转换器自定义及正则代码实例
2020/05/29 Python
skyn ICELAND官网:冰岛成分天然护肤品
2020/08/24 全球购物
实体的生命周期
2013/08/31 面试题
J2EE中的容器都包括哪些
2013/08/21 面试题
采购求职信
2014/03/17 职场文书
行政专员岗位职责说明书
2014/07/30 职场文书
完整版商业计划书
2014/09/15 职场文书
2015年春节标语口号
2014/12/09 职场文书
客服专员岗位职责
2015/02/10 职场文书
企业战略合作意向书
2015/05/08 职场文书
2016年中学法制宣传日活动总结
2016/04/01 职场文书