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 相关文章推荐
会自动逐行上升的文本框
Jun 30 Javascript
Firefox outerHTML实现代码
Jun 04 Javascript
菜鸟javascript基础资料整理2
Dec 06 Javascript
js验证整数加保留小数点的简单实例
Dec 02 Javascript
jQuery中detach()方法用法实例
Dec 25 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
Jul 28 Javascript
jquery判断滚动条距离顶部的距离方法
Sep 05 jQuery
JS 数组随机洗牌的实例代码
Sep 12 Javascript
javascript实现视频弹幕效果(两个版本)
Nov 28 Javascript
使用JS来动态操作css的几种方法
Dec 18 Javascript
vue elementui 实现搜索栏公共组件封装的实例代码
Jan 20 Javascript
vue随机验证码组件的封装实现
Feb 19 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
smarty实例教程
2006/11/19 PHP
php 操作调试的方法
2012/07/12 PHP
PHP gbk环境下json_dencode传送来的汉字
2012/11/13 PHP
ThinkPHP中的三大自动简介
2014/08/22 PHP
php 问卷调查结果统计
2015/10/08 PHP
如何使用GDB调试PHP程序
2015/12/08 PHP
php实现中文转数字
2016/02/18 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
JS获取scrollHeight问题想到的标准问题
2007/05/27 Javascript
一句话JavaScript表单验证代码
2009/08/02 Javascript
十个优秀的Ajax/Javascript实例网站收集
2010/03/31 Javascript
autoIMG 基于jquery的图片自适应插件代码
2011/03/12 Javascript
详谈JavaScript内存泄漏
2014/11/14 Javascript
jquery自定义表格样式
2015/11/23 Javascript
实例详解jQuery Mockjax 插件模拟 Ajax 请求
2016/01/12 Javascript
jQuery滚动插件scrollable.js用法分析
2017/05/25 jQuery
Vue非父子组件通信详解
2017/06/12 Javascript
解析Vue.js中的组件
2018/02/02 Javascript
基于bootstrap页面渲染的问题解决方法
2018/08/09 Javascript
微信小程序实现两个页面传值的方法分析
2018/12/11 Javascript
JavaScript 作用域实例分析
2019/10/02 Javascript
Python Matplotlib库入门指南
2015/05/18 Python
python 中的divmod数字处理函数浅析
2017/10/17 Python
python 列表转为字典的两个小方法(小结)
2019/06/28 Python
pandas分区间,算频率的实例
2019/07/04 Python
Python3将数据保存为txt文件的方法
2019/09/12 Python
Python替换NumPy数组中大于某个值的所有元素实例
2020/06/08 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
2020/06/09 Python
用python绘制樱花树
2020/10/09 Python
python Paramiko使用示例
2020/09/21 Python
系统管理员的职责包括那些?管理的对象是什么?
2016/09/20 面试题
永远跟党走演讲稿
2014/09/12 职场文书
“四风”查摆问题自我剖析材料
2014/09/27 职场文书
安全教育观后感
2015/06/17 职场文书
导游词之澳门玫瑰圣母堂
2019/12/03 职场文书
python爬取企查查企业信息之selenium自动模拟登录企查查
2021/04/08 Python