您的位置: 首页 / Experiences / GreaseMonkey: 让 Yahoo! 搜索结果使用真实地址

GreaseMonkey: 让 Yahoo! 搜索结果使用真实地址

Published at Aug 21, 11pm / Keywords: , , ,

2007-8-21-1

我原以为这年头大家都 Google 百度了,看来用 Yahoo! 搜索的还是大有人在。虽然我自己很少使用,但今天小敖通过 Gmail 向我求助,希望实现这样的功能:

Yahoo! 英文搜索的搜索结果页面中,链接全部为 Yahoo! 的统计/跟踪地址,而不像 Google 搜索那样使用原始地址。这给平时使用(例如我们常用的右键点击“复制链接地址”)造成了不便。希望能有一款插件将这个地址替换为原始地址。

很显然,干“篡改”网页这种事,强大的 GreaseMonkey 再合适不过了。于是花了 20 分钟写了这个简短的脚本,实现了这个功能。如果您有同样的需要的话,可以通过这个链接下载。别忘了先装 Firefox 和 GreaseMonkey 啊。

事实上,所有搜索引擎都会跟踪用户的点击,Google 也不例外。只是 Google 采用比 Yahoo! 聪明一点的方式,先拦截你的 onmousedown 事件,改变 location.href 后再 return false。这样原来 href 中的链接就不起作用了,实际访问的还是带有追踪脚本的链接。搜索引擎统计用户点击可以收集用户数据,从而分析用户行为,有利于生成更准确的搜索结果。

当然,我在设计这个脚本时也考虑过使用 Google 这种方式,使用 onmousedown 事件访问带有统计的链接。但是我发现使用 addEventListener 方法,即使我的函数最后 return false; 原有的链接还是有效。不知道有什么好方法可以将它屏蔽掉,还希望这方面的高手指点一下。

收藏和分享本文 17fav 收藏本文

发表您的观点或推荐本文 Loading...

4 Responses

  1. Aug 22, 4am / LINK / REPLY
    Gravatar

    很好用 很强大 很和谐 哈哈!
    期待早日出英文独立扩展
    救美国人民于水深火热!

  2. Aug 22, 11am / LINK / REPLY
    Gravatar

    把href存入rel,在onmousedown的时候重新扔回去

    window.rwt=function(b){
    b.href=b.getAttribute(”rel”);;
    b.onmousedown=”";
    return true;
    };
    …….
    current[j].setAttribute(’rel’,href);
    current[j].addEventListener(”mousedown”, new Function(”rwt(this)”), false);

  3. 城市过客
    Aug 28, 5pm / LINK / REPLY
    Gravatar

    我不确定这是什么插件,如果可以在最末尾增加一段脚本的话,这样一段代码是管用的,或许可以以更精简的代码来实现。
    var objs=document.getElementsByTagName(”A”);
    for(var i=0;i

  4. 城市过客
    Aug 28, 5pm / LINK / REPLY
    Gravatar

    小于号被过滤了……主要是
    objs[i].onmousedown=function(){return false;}
    在greenbrowser下给window.clk()增加一个alert进行测试,这个alert会在没有这段脚本时执行,而这段脚本执行后就不执行了

Now, It's your Turn!

BACK TO Article / Comments