很不错的网页划词搜索代码

作者:浮夸的晓编 分类:分享 发布于:2014-11-18
  在腾讯新闻网瞎逛时,发现用鼠标选取某一段文字时,就会弹出sogou搜索按钮,由于这代码太复杂,没瞎折腾直接搜索了下划词搜索,找了好久也没找到好的代码,很多兼容性很差,在这个浏览器能用,在那个浏览器上就不能用。

  边找边测试,最后找到一段比较好的,代码很简洁兼容性也很好,在IE和Chrome测试都能正常使用。

  第一段放在的head中间,这是jquery 2.1.1的代码,若你的网站已经有jquery或其它版本,就无需重复添加了。
<script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js" type="text/javascript"></script>

  第二段可以放在网页的任何地方,个人比较喜欢放在底部。部分代码可以根据自己的喜好修改即可,不多做解释相信大家都能看懂的。
<script type='text/javascript'>
jQuery(document).ready(function(){ var miniBlogShare = function() { $('<img id="huaci" title="搜索一下" src="http://so.ifukua.com/favicon.ico" />').appendTo('body'); $('#huaci').css({ display : 'none', position : 'absolute', cursor : 'pointer' }); var funGetSelectTxt = function() { var txt = ''; if(document.selection) { txt = document.selection.createRange().text; } else { txt = document.getSelection(); } return txt.toString();}; $('html,body').mouseup(function(e) { if (e.target.id == 'huaci') { return } e = e || window.event; var txt = funGetSelectTxt(), sh = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0, left = (e.clientX - 40 < 0) ? e.clientX + 20 : e.clientX - 40, top = (e.clientY - 40 < 0) ? e.clientY + sh + 20 : e.clientY + sh - 40; if (txt) { $('#huaci').css({ display : 'inline', left : left, top : top }); } else { $('#huaci').css('display', 'none'); } }); $('#huaci').click(function() { var txt = funGetSelectTxt(), title = $('title').html(); if (txt) { window.open('http://so.ifukua.com/l.htm?s=' + txt + ''); } }); }(); });
</script>