2007-09-23

原创 火狐 书签 工具 SOO 用Google搜索在网页中选中的文字 如果选中的文字是网址直接打开

//SOO=SearchOrOpen
javascript:void(
function(){
        var op = function( sel){
                sel = sel.toString().replace( /^\s+/, '').replace(/\s+$/, '');
                if(sel!=''){
                        var urlReg = /[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.{1}[a-z]{2,5}((:[0-9]{1,5})?(\/?|\/.*))?/i ;
                        var httpReg = /^(ht|f)tp(s?)\:\/\//i ;
                        if(!urlReg.test(sel)){
                                sel = "http://www.google.com/search?q= "+encodeURIComponent(sel);
                        }
                        else if(!httpReg.test(sel )){
                                sel = "http://" + sel;
                        }
                        //alert(sel);
                        open(sel);
                }
        }
        var topSel = getSelection();
        if (topSel!=""){op (topSel);}
        else {
           for(var i=0;i <frames.length;i++){
               var fSel = frames[i ].getSelection();
               if(fSel!=""){op(fSel );}
           }
        }
}()
)


使用时需要变成一行(以下代码是使用
ShrinkSafe处理后的结果):
javascript:void (function(){var op=function(_2){_2=_2.toString().replace (/^\s+/,"").replace(/\s+$/ ,"");if(_2!=""){ var _3=/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.{1}[a-z]{2,5}((:[0-9]{1,5})?(\/?|\/.*))?/i;var _4=/^(ht|f)tp(s?)\:\/\//i;if(!_3.test(_2 )){_2="http://www.google.com/search?q="+encodeURIComponent (_2);}else{if(!_4.test(_2 )){_2="http://"+_2;}}open(_2);}};var _5=getSelection();if(_5!="" ){op(_5);}else{for(var i=0;i<frames.length;i++){var _7=frames[i].getSelection();if(_7 !=""){op(_7);}}}}());


说明:
  • 只在火狐上测试通过,估计在IE上使用需要稍加修改 主要是如何获取选中文字方面略有不同
  • 如果配合鼠标手势add-on(http://optimoz.mozdev.org/gestures/),设定足够好的快捷键,比如我设置了右键-左键序列作为该书签工具的快捷键方式,可以取得非常理想的效果,类似马桶(Maxthon)浏览器上的超级拖放(在火狐上可以再设定左键-右键序列作为在新标签页打开链接的快捷键,这样就可以完全实现马桶的超级拖放) 火狐上的确有个add-on叫 Super DragAndGo(https://addons.mozilla.org/en-US/firefox/addon/137?id=137&vid=266) 升级到火狐2.0后 只对衔接有效对选中的非链接无效 而且一直没有改正 而且速度比较慢 而且何必多装一个add-on呢
  • 但别高兴太早了 如果配合鼠标手势使用 一定要注意关闭弹出窗口拦截 有adblock plus 其实关掉无妨 否则我这个脚本中open的窗口 统统会被关掉 奇怪的是 如果直接在书签工具栏里点击 倒是不会被拦截 哎 系统做大了真是复杂啊 另外 还要小心不要禁止掉JavaScript 比如 NoScript 就会拦截这个脚本 最终我放弃了NoScript这个add-on 太复杂了 没必要 我换了一个类似的add-on JavaScript黑名单(YesJavaScript) 这个简单 易用 正合我意 好了大功告成
感谢

没有评论:

所见所闻所思