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 相关文章推荐
2010年最佳jQuery插件整理
Dec 06 Javascript
JavaScript数组常用方法
Mar 02 Javascript
JS如何判断json是否为空
Jul 06 Javascript
ui组件之input多选下拉实现方法(带有搜索功能)
Jul 14 Javascript
JS中数组重排序方法
Nov 11 Javascript
Javascript中常用类型的格式化方法小结
Dec 26 Javascript
微信小程序 定位到当前城市实现实例代码
Feb 23 Javascript
Angualrjs和bootstrap相结合实现数据表格table
Mar 30 Javascript
解决vue路由后界面没有变化,但是链接有的问题
Sep 01 Javascript
vue中实现上传文件给后台实例详解
Aug 22 Javascript
js实现购物车商品数量加减
Sep 21 Javascript
使用PDF.js渲染canvas实现预览pdf的效果示例
Apr 17 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 文件上传进度条的两种实现方法的代码
2007/11/25 PHP
php过滤危险html代码
2008/08/18 PHP
php实现的简单检验登陆类
2015/06/18 PHP
使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
2017/09/01 PHP
thinkPHP5实现的查询数据库并返回json数据实例
2017/10/23 PHP
jquery复选框CHECKBOX全选、反选
2008/08/30 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
2012/08/24 Javascript
FF IE浏览器修改标签透明度的方法
2014/01/27 Javascript
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
js闭包实现按秒计数
2015/04/23 Javascript
浅谈jQuery中replace()方法
2015/05/13 Javascript
jQuery代码实现发展历程时间轴特效
2015/07/30 Javascript
drag-and-drop实现图片浏览器预览
2015/08/06 Javascript
深入学习JavaScript对象
2015/10/13 Javascript
Bootstrap栅格系统使用方法及页面调整变形的解决方法
2017/03/10 Javascript
详解如何使用vue-cli脚手架搭建Vue.js项目
2017/05/19 Javascript
详解Node项目部署到云服务器上
2017/07/12 Javascript
js实现带进度条提示的多视频上传功能
2020/12/13 Javascript
WebGL three.js学习笔记之阴影与实现物体的动画效果
2019/04/25 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
vue实现登录拦截
2020/06/29 Javascript
Python版微信红包分配算法
2015/05/04 Python
python制作websocket服务器实例分享
2016/11/20 Python
浅谈function(函数)中的动态参数
2017/04/30 Python
Python实现PS滤镜的万花筒效果示例
2018/01/23 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
2018/12/06 Python
Python 计算任意两向量之间的夹角方法
2019/07/05 Python
浅谈python 中的 type(), dtype(), astype()的区别
2020/04/09 Python
HTML5本地数据库基础操作详解
2016/04/26 HTML / CSS
某公司Java工程师面试题笔试题
2016/03/27 面试题
学历公证委托书
2014/04/09 职场文书
英语分层教学实施方案
2014/06/15 职场文书
2016年国陪研修感言
2015/11/18 职场文书
大学生学习十八届五中全会精神心得体会
2016/01/05 职场文书
《时代广场的蟋蟀》读后感:真挚友情,温暖世界!
2020/01/08 职场文书
JS的深浅复制详细
2021/10/16 Javascript