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 UrlDecode函数代码
Jan 09 Javascript
textarea中的手动换行处理的jquery代码
Feb 26 Javascript
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
Jan 24 Javascript
JavaScript1.6数组新特性介绍以及JQuery的几个工具方法
Dec 06 Javascript
javascript实现点击后变换按钮显示文字的方法
May 13 Javascript
AngularJS中的DOM操作用法分析
Nov 04 Javascript
JS实现类似百叶窗下拉菜单效果
Dec 30 Javascript
基于webpack-hot-middleware热加载相关错误的解决方法
Feb 22 Javascript
vue toggle做一个点击切换class(实例讲解)
Mar 13 Javascript
vue-cli项目根据线上环境分别打出测试包和生产包
May 23 Javascript
八种Vue组件间通讯方式合集(推荐)
Aug 18 Javascript
vue-simple-uploader上传成功之后的response获取代码
Sep 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
基于mysql的论坛(4)
2006/10/09 PHP
了解Joomla 这款来自国外的php网站管理系统
2010/03/11 PHP
php不使用copy()函数复制文件的方法
2015/03/13 PHP
Symfony2安装第三方Bundles实例详解
2016/02/04 PHP
php倒计时出现-0情况的解决方法
2016/07/28 PHP
IE中jscript/javascript的条件编译
2006/09/07 Javascript
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
2007/02/15 Javascript
jQuery 创建Dom元素
2010/05/07 Javascript
Javascript事件实例详解
2013/11/06 Javascript
jquery增加和删除元素的方法
2015/01/14 Javascript
EasyUi combotree 实现动态加载树节点
2016/04/01 Javascript
使用JS代码实现点击按钮下载文件
2016/11/12 Javascript
bootstrap网格系统使用方法解析
2017/01/13 Javascript
微信小程序五星评分效果实现代码
2017/04/06 Javascript
JavaScript中最常用的10种代码简写技巧总结
2017/06/28 Javascript
JavaScript数据结构之双向链表定义与使用方法示例
2017/10/27 Javascript
详解JavaScript函数callee、call、apply的区别
2019/03/08 Javascript
js canvas实现5张图片合成一张图片
2019/07/15 Javascript
记录vue做微信自定义分享的一些问题
2019/09/12 Javascript
Vue+ElementUI使用vue-pdf实现预览功能
2019/11/26 Javascript
Vue项目vscode 安装eslint插件的方法(代码自动修复)
2020/04/15 Javascript
Python 中 Meta Classes详解
2016/02/13 Python
Python中函数参数调用方式分析
2018/08/09 Python
python同时遍历数组的索引和值的实例
2018/11/15 Python
基于wxPython的GUI实现输入对话框(2)
2019/02/27 Python
Python字符串内置函数功能与用法总结
2019/04/16 Python
Pandas中Series和DataFrame的索引实现
2019/06/27 Python
pytorch标签转onehot形式实例
2020/01/02 Python
CSS3制作翻转效果_动力节点Java学院整理
2017/07/11 HTML / CSS
租租车:国际租车、美国租车、欧洲租车、特价预订国外租车(中文服务)
2018/03/28 全球购物
澳大利亚设计的优质鞋类和适合澳大利亚生活方式的服装:Rivers
2019/04/23 全球购物
营销与策划专业求职信
2014/06/20 职场文书
2015年初三班主任工作总结
2015/05/21 职场文书
培养联系人考察意见
2015/06/01 职场文书
创业计划书之熟食店
2019/10/16 职场文书
OpenCV实现常见的四种图像几何变换
2022/04/01 Python