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 异步处理进度条
Apr 01 Javascript
Jquery弹出窗口插件 LeanModal的使用方法
Mar 10 Javascript
JavaScript获取客户端计算机硬件及系统等信息的方法
Jan 02 Javascript
让input框实现类似百度的搜索提示(基于jquery事件监听)
Jan 31 Javascript
可恶的ie8提示缺少id未定义
Mar 20 Javascript
JQuery实现表格动态增加行并对新行添加事件
Jul 30 Javascript
javascript 原型链维护和继承详解
Nov 26 Javascript
分享一个常用的javascript静态类
Dec 31 Javascript
JavaScript实现简易的天数计算器实例【附demo源码下载】
Jan 18 Javascript
Bootstrap标签页(Tab)插件使用方法
Mar 21 Javascript
webpack的pitching loader详解
Sep 23 Javascript
JavaScript实现图片轮播特效
Oct 23 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
锁定年轻人的双倍活力 星巴克推出星倍醇即饮浓咖啡
2021/03/03 咖啡文化
PHP网站提速三大“软”招
2006/10/09 PHP
PHP define函数的使用说明
2008/08/27 PHP
php实现mysql备份恢复分卷处理的方法
2014/12/26 PHP
PHP设计模式概论【概念、分类、原则等】
2020/05/01 PHP
jquery下组织javascript代码(js函数化)
2010/08/25 Javascript
jQuery编写widget的一些技巧分享
2010/10/28 Javascript
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题
2011/09/28 Javascript
图片放大镜jquery.jqzoom.js使用实例附放大镜图标
2014/06/19 Javascript
jQuery的图片滑块焦点图插件整理推荐
2014/12/07 Javascript
轻松掌握JavaScript享元模式
2016/08/27 Javascript
js实现手机发送验证码功能
2017/03/13 Javascript
vue实现一个移动端屏蔽滑动的遮罩层实例
2017/06/08 Javascript
基于JS对象创建常用方式及原理分析
2017/06/28 Javascript
浅谈箭头函数写法在ReactJs中的使用
2017/08/22 Javascript
基于axios封装fetch方法及调用实例
2018/02/05 Javascript
vue微信分享出来的链接点开是首页问题的解决方法
2018/11/28 Javascript
Vue实现PC端靠边悬浮球的代码
2020/05/09 Javascript
python中requests模块的使用方法
2015/04/08 Python
Python中functools模块函数解析
2017/03/12 Python
django中的setting最佳配置小结
2017/11/21 Python
Python使用smtp和pop简单收发邮件完整实例
2018/01/09 Python
Windows下python3.6.4安装教程
2018/07/31 Python
Python中实例化class的执行顺序示例详解
2018/10/14 Python
python如何实现代码检查
2019/06/28 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
2020/03/06 Python
Python基于callable函数检测对象是否可被调用
2020/10/16 Python
html5理解head_动力节点Java学院整理
2017/07/13 HTML / CSS
玩具反斗城葡萄牙官方商城:Toys"R"Us葡萄牙
2016/10/21 全球购物
赔偿协议书范本
2014/04/15 职场文书
给学校建议书范文
2014/05/13 职场文书
公司离职证明范本
2014/10/17 职场文书
教师群众路线教育实践活动学习笔记
2014/11/05 职场文书
故意伤害罪辩护词
2015/05/21 职场文书
Vue中foreach数组与js中遍历数组的写法说明
2021/06/05 Vue.js
利用Python实现Picgo图床工具
2021/11/23 Python