2008年11月28日星期五

Newegg Hidden Price Revealer

最近在研究jQuery的时候突发奇想,想起了前段时间看过的GreaseMonkey。突然想用jQuery写一个GreaseMonkey脚本试试看,看看到底jQuery能有多强大。

随意浏览了一下各个网站,发现Newegg.com有个我可以做做文章的内容。Newegg.com上有一些产品的价格信息是隐藏起来的,只有当你点击相应的链接后才会在弹出窗口中显示出真实的价格来。那么我想了一下,是否可以做这样一个GreaseMonkey脚本,使我不用点击链接就直接可以在当前页面上看到真实价格呢?

说干就干,随即在Firebug的帮助下完成了这样一个显示隐藏价格脚本的编写。目前这个脚本我已上传到了userscripts.org上,有需要的朋友可在下面链接得到:

Newegg Hidden Price Revealer

Screenshots:

Image showing the original hidden price
原始的价格隐藏产品页面

Image showing the revealed price
真实的价格被显示出来了

下面描述一下这个脚本的实现过程,以供读者和我本人日后参考。:)

  1. 首先用Firebug查看有这种隐藏价格的产品页面,用Inspect功能点击显示价格的链接,找出这种隐藏价格的特征。这样就能识别哪些内容是隐藏价格的内容了。
  2. 因为点击链接后会弹出新窗口,而我们需要的真实的价格正是在这个新窗口中,所以需要首先找到这个窗口的URL。可以在我们上面定位到的链接中找到,也就是脚本需要提取这段URL。
  3. 拿到了URL后就要写一个Ajax调用拿到这个URL的响应,返回的内容自然是HTML,所以需要在这个HTML返回里找出真实的价格信息的特征。
  4. 找到特征后,利用特征提取真实的价格信息,然后用这个真实的价格信息替换原始的链接,这样就完成了脚本的编写了。

整个脚本由于有jQuery的帮忙所以所需的代码量很小。结论是jQuery真的很强大,真的符合它的设计理念:“Write less, do more.”

注意事项:这里需要注意如果原本页面中就有引用jQuery类库的话那么我们在GreaseMonkey中就不要再引用了,会出现问题。所以在脚本中需首先判断jQuery对象是否已经存在。

没有评论:

发表评论