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 相关文章推荐
利用XMLHTTP传递参数在另一页面执行并刷新本页
Oct 26 Javascript
自己的js工具 Event封装
Aug 21 Javascript
Javascript delete 引用类型对象
Nov 01 Javascript
Javascript的闭包详解
Dec 26 Javascript
JavaScript中的依赖注入详解
Mar 18 Javascript
一览画面点击复选框后获取多个id值的方法
May 30 Javascript
js中常用的Tab切换效果(推荐)
Aug 30 Javascript
js实现移动端导航点击自动滑动效果
Jul 18 Javascript
jQuery中.attr()和.data()的区别分析
Sep 03 jQuery
create-react-app 修改为多入口编译的方法
Aug 01 Javascript
JS实现移动端在线签协议功能
Aug 22 Javascript
js实现鼠标滑动到某个div禁止滚动
Sep 17 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的类树(支持无限分类)
2006/10/09 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
2014/10/21 PHP
CodeIgniter读写分离实现方法详解
2016/01/20 PHP
PHP自动载入类文件函数__autoload的使用方法
2019/03/25 PHP
PHP+百度AI OCR文字识别实现了图片的文字识别功能
2019/05/08 PHP
PHP执行系统命令函数实例讲解
2021/03/03 PHP
juqery 学习之三 选择器 子元素与表单
2010/11/25 Javascript
kindeditor修复会替换script内容的问题
2015/04/03 Javascript
jQuery插件pagewalkthrough实现引导页效果
2015/07/05 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
2017/01/09 Javascript
基于JavaScript实现下拉列表左右移动代码
2017/02/07 Javascript
Bootstrap页面标题Page Header的实现方法
2017/03/22 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
2017/09/01 Javascript
详解小程序之简单登录注册表单验证
2019/05/13 Javascript
Vue 自定义指令功能完整实例
2019/09/17 Javascript
解决vue刷新页面以后丢失store的数据问题
2020/08/11 Javascript
JavaScript中clientWidth,offsetWidth,scrollWidth的区别
2021/01/25 Javascript
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
Python模拟百度登录实例详解
2016/01/20 Python
python用户管理系统
2018/03/13 Python
Python实现的自定义多线程多进程类示例
2018/03/23 Python
解决nohup执行python程序log文件写入不及时的问题
2019/01/14 Python
Python 3.8新特征之asyncio REPL
2019/05/28 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
2019/08/12 Python
python能开发游戏吗
2020/06/11 Python
sklearn和keras的数据切分与交叉验证的实例详解
2020/06/19 Python
Pycharm及python安装详细教程(图解)
2020/07/31 Python
实例讲解使用HTML5 Canvas绘制阴影效果的方法
2016/03/25 HTML / CSS
澳大利亚潮流尖端的快时尚品牌:Cotton On
2016/09/26 全球购物
英国最大的奢侈珠宝和手表网站:C W Sellors
2017/02/10 全球购物
【魔兽争霸3重制版】原版画面与淬火MOD画面对比
2021/03/26 魔兽争霸
我爱家乡演讲稿
2014/09/12 职场文书
颂军魂爱军营演讲稿
2014/09/13 职场文书
写给医生的感谢信
2015/01/22 职场文书
创先争优活动个人总结
2015/03/04 职场文书
mysql在项目中怎么选事务隔离级别
2021/05/25 MySQL