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) 这个简单 易用 正合我意 好了大功告成
- ShrinkSafe(http://alex.dojotoolkit.org/shrinksafe/)
- url正则表达式出处 http://nshb.net/node/252 略做改动以适应JavaScript
没有评论:
发表评论