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 相关文章推荐
js 模拟实现类似c#下的hashtable的简单功能代码
Jan 24 Javascript
FusionCharts图表显示双Y轴双(多)曲线
Nov 22 Javascript
javascript 上下banner替换具体实现
Nov 14 Javascript
jquery 字符串切割函数substring的用法说明
Feb 11 Javascript
jQuery中ajax错误调试分析
Dec 01 Javascript
bootstrap daterangepicker汉化以及扩展功能
Jun 15 Javascript
Node.js中环境变量process.env的一些事详解
Oct 26 Javascript
在vue中添加Echarts图表的基本使用教程
Nov 22 Javascript
微信小程序methods中定义的方法互相调用的实例代码
Aug 07 Javascript
详解如何在Vue里建立长按指令
Aug 20 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
Sep 18 Javascript
Vue学习之组件用法实例详解
Jan 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
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
深入认识JavaScript中的函数
2007/01/22 Javascript
jquery 打开窗口返回值实现代码
2010/03/04 Javascript
基于jquery的获取mouse坐标插件的实现代码
2010/04/01 Javascript
来自国外的14个图片放大编辑的jQuery插件整理
2010/10/20 Javascript
js获得参数的getParameter使用示例
2014/02/26 Javascript
通过Jquery.cookie.js实现展示浏览网页的历史记录超管用
2015/10/23 Javascript
AngularJS基础 ng-open 指令简单实例
2016/08/02 Javascript
AngularJS中transclude用法详解
2016/11/03 Javascript
从零学习node.js之模块规范(一)
2017/02/21 Javascript
浅谈sass在vue注意的地方
2017/08/10 Javascript
JS实现百度搜索接口及链接功能实例代码
2018/02/02 Javascript
我要点爆”微信小程序云开发之项目建立与我的页面功能实现
2019/05/26 Javascript
Vue根据条件添加click事件的方式
2019/11/09 Javascript
Python实现的矩阵类实例
2017/08/22 Python
浅谈Python实现Apriori算法介绍
2017/12/20 Python
Python读取word文本操作详解
2018/01/22 Python
python机器学习之贝叶斯分类
2018/03/26 Python
python实现逆序输出一个数字的示例讲解
2018/06/25 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
python3实现的zip格式压缩文件夹操作示例
2019/08/17 Python
python opencv图片编码为h264文件的实例
2019/12/12 Python
python 递归调用返回None的问题及解决方法
2020/03/16 Python
汽车维修与检测专业应届生求职信
2013/11/12 职场文书
如何写一份好的自荐信
2014/01/02 职场文书
2014全国两会学习心得体会2000字
2014/03/10 职场文书
社区矫正工作方案
2014/06/04 职场文书
2014院党委领导班子及其成员群众路线对照检查材料思想汇报
2014/10/04 职场文书
委托公证书样本
2015/01/23 职场文书
2015年感恩父亲节演讲稿
2015/03/19 职场文书
Vue CLI中模式与环境变量的深入详解
2021/05/30 Vue.js
Python数据可视化之用Matplotlib绘制常用图形
2021/06/03 Python
总结python多进程multiprocessing的相关知识
2021/06/29 Python
OpenCV实现普通阈值
2021/11/17 Java/Android
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js
python数据分析之单因素分析线性拟合及地理编码
2022/06/25 Python