2012/11/13 07:44:46作者:佚名来源:网络
【实例名称】
JS实现划词搜索
【实例描述】
在一段文本中选择一个单词,然后调用Google的搜索功能对此单词进行搜索,这就是本例要实现的划词搜索功能。
【实例代码】
<html> <head> <title>划词搜索-学无忧(www.xue51.com)</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <body> <SCRIPT language=Javascript> document.body.onload=adddiv; //页面加载时动态创建div document.onmousedown=recordobj; //鼠标按下时触发的事件 document.ondblclick=dbclick; //窗体双击时触发的事件 document.onmouseup=showselect; //鼠标弹起时触发的事件 var eventObj; var isDouble=false; var allow=true; //是否启用划词搜索
function isallow() { if(allow){ allow=false; alert('已经关闭'); } else{ allow=true; alert('已经打开'); } }
function dbclick() //双击事件 { isDouble=true; } function recordobj() //当前操作对象 { eventObj=event.srcElement; } function showselect() { var str=""; if(event.srcElement.tagName!="A"&&event.srcElement.tagName!= "INPUT"&&event.srcElement==eventObj&&!isDouble&&allow) { var oText=document.selection.createRange(); //获取选择文本 if(oText.text.length>0) //如果文本存在 { str=oText.text; oText.text="begin"+oText.text+"end"; //包装被选中的文本 } oText.select(); //实现选择 //设置选中文本的样式-带下划线-变颜色 event.srcElement.innerHTML=event.srcElement. innerHTML.replace("begin","<u style='FONT-WEIGHT: bold;COLOR: #ff3366'>") .replace("end","</u>"); } googleDiv(str) //实现选定文本的搜索 isDouble=false; }
function googleDiv(str) { var obj=document.getElementById("googleDiv"); //获取动态添加的div if(str.length>0) { obj.style.display="block"; //显示div obj.style.position="absolute"; //设置div绝对位置 obj.style.zindex=999; obj.style.posTop=document.body.scrollTop+event.y-25; //div的Y坐标 obj.style.posLeft=document.body.scrollLeft+event.x+5; //div的X坐标 obj.style.widht=80; //div的宽度 obj.innerHTML="<a target=_blank href=http://www.google.com/ search?ie=UTF-8&oe=UTF-8&q="+str+" style='BORDER-RIGHT: royalblue thin solid; BORDER-TOP: royalblue thin solid; FONT-WEIGHT: bold; BORDER-LEFT: royalblue thin solid; CLIP: rect(auto auto auto auto); COLOR: #ffffff; BORDER-BOTTOM: royalblue thin solid; BACKGROUND-COLOR: inactivecaption; TEXT-DECORATION: none'>搜索</a>"; } else { obj.style.display="none"; } }
function adddiv()//动态添加div标签 { var mobj = document.createElement("div"); //创建div标签 mobj.id="googleDiv"; //设置div标签的id document.body.appendChild(mobj); //将div添加到窗体中 } </SCRIPT> <INPUT type="button" onclick="isallow()" value="关闭/打开划词功能"> <p>This is Test ,please Select,it's will google</p> </body> </html>
【运行效果】
划词后的效果
搜索的效果
【难点剖析】
本例的难点有3个,获取用户选择的词,动态弹出div层让用户调用搜索功能,调用Google实现搜索。获取用户选择的词在“showselect”方法中实现,主要依靠“createRaIlge”和“select”两个文本区域选择方法。动态弹出div层是常见的层特效,就是设置层的隐藏和显示。调用Google搜索的实现在“googleDiv”方法中完成,这里注意传递给Google的参数。
【源码下载】
为了JS代码的准确性,请点击:划词搜索 进行本实例源码下载
标签: JS实现 划词 搜索
相关文章
够快云库v6.3.24.12120免费版
详情光影魔术手官方版 v4.7.1
详情ADsafe净网大师v5.4.408.7000
详情网易邮箱大师v5.3.2.1015电脑版
详情foxmailv7.2.25.375
详情暴风影音5v5.92.0824.1111
详情暴风影音v5.92.0824.1111
详情BitComet(比特彗星)v2.13.4.13Beta2
详情路由优化大师v4.5.31.267
详情茄子快传电脑版 v5.1.0.7
详情搜狐影音 v7.2.1.0官方版
详情搜狐影音客户端 v7.2.1.0
详情迅雷影音官方版 v7.0.3.92
详情cbox央视影音v6.0.3.4经典版
详情potplayer播放器v1.7.22496
详情Daum PotPlayer(已集成直播源)v1.7.22496绿色纯净美化便携增强版
详情天国拯救2黄金版 Build.17149332-1.1.1.11377中文版
详情燕云十六声电脑版 v1.9.31
详情潜行者2:切尔诺贝利之心 Build.16805297豪华中文版
详情模拟农场25豪华中文版
详情迷你世界电脑版 v1.41.00
详情骑马与砍杀2 v1.2.9.34019免费版
详情侠盗猎车手圣安地列斯 v1.0最新中文版
详情整蛊白云 v1.0
详情地平线4 v1.476中文版
详情圣女战旗中文v1.1.9绿色免安装版
详情狂怒2中文
详情红色警戒2共和国之辉电脑版 v1.0
详情模拟人生4 v1.0中文免费版
详情蛊婆v1.0免费版
详情风起云涌2越南中文版 v1.6Steam正版
详情使命召唤17官方中文版 v1.0
详情掌门好家长v5.10.0手机版
详情惠买v5.4.46官方版
详情快快查汉语字典综合官方版V5.0.0官方版
详情尚德机构v7.8.1官方版
详情头像精灵v3.7.0美化版
详情运满满货主版v7.92.1.0安卓版
详情运满满司机版app手机版v8.92.1.0安卓版
详情网易蜗牛读书水墨版V1.9.78
详情泼辣修图免费版v6.11.3安卓版
详情泼辣修图安卓版v6.11.3
详情汽车大师v7.15.5技师版
详情步多多v2.8.1安卓版
详情新浪新闻v8.43.7官方版
详情拓词v14.21安卓版
详情思尔健康v3.1.42安卓版
详情云上钢琴v4.0.3安卓版
详情