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制作的幻灯片图集效果打包下载
Feb 12 Javascript
js监听鼠标事件控制textarea输入字符串的个数
Sep 29 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
May 14 Javascript
基于JavaScript实现动态创建表格和增加表格行数
Dec 20 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
Jan 23 Javascript
Bootstrap modal使用及点击外部不消失的解决方法
Dec 13 Javascript
Angular.JS中的this指向详解
May 17 Javascript
vue数字类型过滤器的示例代码
Sep 07 Javascript
Popup弹出框添加数据实现方法
Oct 27 Javascript
微信小程序页面生命周期详解
Jan 31 Javascript
详解Chai.js断言库API中文文档
Jan 31 Javascript
微信小程序制作表格的方法
Feb 14 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
在Laravel框架里实现发送邮件实例(邮箱验证)
2016/05/20 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
PHP面向对象之事务脚本模式(详解)
2017/06/07 PHP
Laravel 6.2 中添加了可调用容器对象的方法
2019/10/22 PHP
mouse_on_title.js
2006/08/25 Javascript
javascript 动态参数判空操作
2008/12/22 Javascript
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
2013/07/02 Javascript
JavaScript实现随机替换图片的方法
2015/04/16 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
AngularJS 整理一些优化的小技巧
2016/08/18 Javascript
Vue.js中数组变动的检测详解
2016/10/12 Javascript
js选项卡的制作方法
2017/01/23 Javascript
解析Vue2.0双向绑定实现原理
2017/02/23 Javascript
JavaScript函数表达式详解及实例
2017/05/05 Javascript
vue中路由参数传递可能会遇到的坑
2017/12/07 Javascript
Vue动态组件和异步组件原理详解
2019/05/06 Javascript
教你如何用Node实现API的转发(某音乐)
2019/09/20 Javascript
原生js实现3D轮播图
2020/03/21 Javascript
原生JavaScript写出Tabs标签页的实例代码
2020/07/20 Javascript
Python爬虫框架Scrapy安装使用步骤
2014/04/01 Python
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
Django框架中方法的访问和查找
2015/07/15 Python
在Python的Django框架中包装视图函数
2015/07/20 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
2017/11/01 Python
解决python中os.listdir()函数读取文件夹下文件的乱序和排序问题
2018/10/17 Python
python装饰器原理与用法深入详解
2019/12/19 Python
基于nexus3配置Python仓库过程详解
2020/06/15 Python
ECHT官方网站:男女健身服
2020/02/14 全球购物
高三自我鉴定怎么写
2013/10/19 职场文书
大学专科生推荐信范文
2013/11/23 职场文书
创建省级文明单位实施方案
2014/02/27 职场文书
工程售后服务承诺书
2014/05/21 职场文书
违反工作规定检讨书范文
2014/12/14 职场文书
高中生自我评价范文2015
2015/03/03 职场文书
让文件路径提取变得更简单的Python Path库
2021/05/27 Python