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前端框架关于重构的失败经验分享
Mar 17 Javascript
表格单元格交错着色实现思路及代码
Apr 01 Javascript
JS获取随机数函数可自定义最小值最大值
May 08 Javascript
node爬取微博的数据的简单封装库nodeweibo使用指南
Jan 02 Javascript
Javascript实现跑马灯效果的简单实例
May 31 Javascript
浅谈EasyUI常用控件的禁用方法
Nov 09 Javascript
jQuery基于Ajax方式提交表单功能示例
Feb 10 Javascript
详解如何将angular-ui的图片轮播组件封装成一个指令
May 09 Javascript
Bootstrap Table从零开始
Jun 30 Javascript
详解Angular5路由传值方式及其相关问题
Apr 28 Javascript
JS实现的简单下拉框联动功能示例
May 11 Javascript
js比较两个单独的数组或对象是否相等的实例代码
Apr 28 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实现的获取网页中的图片并保存到本地的代码
2010/01/05 PHP
ThinkPHP实现一键清除缓存方法
2014/06/26 PHP
PHP receiveMail实现收邮件功能
2018/04/25 PHP
prototype 1.5相关知识及他人笔记
2006/12/16 Javascript
WordPress JQuery处理沙发头像
2009/06/22 Javascript
JQuery选择器特辑 详细小结
2012/05/14 Javascript
js购物车实现思路及代码(个人感觉不错)
2013/12/23 Javascript
解决Jquery鼠标经过不停滑动的问题
2014/03/03 Javascript
Nodejs中读取中文文件编码问题、发送邮件和定时任务实例
2015/01/01 NodeJs
js库Modernizr的介绍和使用
2015/05/07 Javascript
学习JavaScript设计模式之迭代器模式
2016/01/19 Javascript
AngularJS学习笔记之依赖注入详解
2016/05/16 Javascript
js中string和number类型互转换技巧(分享)
2016/11/28 Javascript
JavaScript实现前端分页控件
2017/04/19 Javascript
React Component存在的几种形式详解
2018/11/06 Javascript
js中this的指向问题归纳总结
2018/11/28 Javascript
javascript function(函数类型)使用与注意事项小结
2019/06/10 Javascript
iview form清除校验状态的实现
2019/09/19 Javascript
vue实现购物车选择功能
2020/01/10 Javascript
[44:37]完美世界DOTA2联赛PWL S3 Forest vs access 第一场 12.11
2020/12/13 DOTA
使用python的chardet库获得文件编码并修改编码
2014/01/22 Python
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
使用Python脚本实现批量网站存活检测遇到问题及解决方法
2016/10/11 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
2019/06/26 Python
Python搭建Spark分布式集群环境
2019/07/05 Python
使用pandas 将DataFrame转化成dict
2019/12/10 Python
opencv+python实现均值滤波
2020/02/19 Python
Django admin管理工具TabularInline类用法详解
2020/05/14 Python
Python类型转换的魔术方法详解
2020/12/23 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
goodhealth官方海外旗舰店:新西兰国民营养师
2017/12/15 全球购物
总裁岗位职责
2013/12/04 职场文书
群众路线个人对照检查材料
2014/09/23 职场文书
幼儿园园长工作总结2015
2015/05/25 职场文书
Vue3.0写自定义指令的简单步骤记录
2021/06/27 Vue.js