`
runfeel
  • 浏览: 935656 次
文章分类
社区版块
存档分类
最新评论

发布一个开源项目 — Autohome增强插件(for chrome)

 
阅读更多

汽车之家的网站没有一个收藏功能, 感觉有些不可理解, 前段时间正好学了javascript, 兴趣正浓, 于是摸索着怎么弄chrome插件, 为汽车之家写了个chrome的增强插件, 并且开源很久了, 一直没有在博客上提到, 今天在这里把相关的信息也贴一遍吧.

简介

目前仅有Chrome版本.
目前仅有的功能是实现autohome对车系的收藏. 但是服务器方面已经实现了对收藏的通用实现, 并且客户端的代码已经开源.
欢迎大家添加更多的新功能, 比如对具体车型, 新闻, 文章等的收藏.
项目地址:https://github.com/jtianling/autohome-boost

客户端代码说明

主要通过chrome插件的content_scripts功能实现功能添加.
用了web_accessible_resources功能加载了series_fav_clicked.js文件, 主要是方便直接在网站的环境中添加代码, 省的一堆转义. 假如不嫌累的话, 直接在series_fav.js的addTheFavFeature函数中也可以完成所有功能.
代码本身比较简单, 需要说明的不多, 主要的功能都是使用JSONP实现在autohome的环境中运行了我服务器上的脚本而已.

服务端接口说明

增加车系收藏

http://42.121.57.45:10001/add_fav
参数: type(收藏的类型), name(用户名), code(收藏编号) 以及任意想保存的属性. 比如在series的收藏中, 我添加了三个属性: desc(描述), price(价格), url(网址)
返回结果: 无

删除车系收藏

http://42.121.57.45:10001/del_fav
参数: type(收藏的类型), name(用户名), code(收藏编号)
返回结果: 无

查询车系收藏情况

http://42.121.57.45:10001/is_fav
参数: type(收藏的类型), name(用户名), code(收藏编号)
返回结果: Json对象, 唯一的属性为bool类型的result, true表示已收藏, false表示还未收藏.

获取所有我的收藏

http://42.121.57.45:10001/get_favs
参数: type(收藏的类型), name(用户名)
返回结果: Json类型, 为add_fav时添加的所有属性的数组, 典型的形式如下:

json
[{"name":"九天雁翎","type":"series","code":"364","desc":"长安福特-福克斯",
"price":"9.98~16.99万","url":"http://www.autohome.com.cn/364/"},
{"name":"九天雁翎","type":"series","code":"577","desc":"长安福特-蒙迪欧-致胜",
"price":"16.98~25.68万","url":"http://www.autohome.com.cn/577/"},
{"name":"九天雁翎","type":"series","code":"2863","desc":"长安福特-翼虎",
"price":"19.38~27.58万","url":"http://www.autohome.com.cn/2863/"}]

目前的type类型是series(车系).
推荐将来的收藏类型为 spec(具体车型), new(新闻), article(文章), advice(导购)等, 以参考autohome本身网站链接的英文为最佳选择.
服务端添加新的类型不需要进行任何修改. 想要增加新的收藏类型的童鞋请按需随意添加^^
对看到ip地址不爽的童鞋表示抱歉, 因为这是阿里云的服务器, 而我没有备案, 所以虽然有域名, 但是没办法绑定.
更为诡异的是, 从国外访问阿里云的这个服务器也会出问题(所以在国外就没法使用这个插件), 天知道这是为什么.

问题

编写Chrome Extension本身并不复杂, 主要就是理解manifes.json, 但是我一直有些很烦人的问题没有解决.
在Google Chrome Extensions中的javascript运行环境分为Extension本身和网页两种. 一种主要用来调用Google开放的Extension API, 一种主要用来操作DOM. 但是我一直没有找到在两种环境中共享代码的方法, 因此连一个简单的全局配置文件都没法写(更不用说想共享一些通用的函数了), 更让人恼火的是, 我也没有找到在Extension环境中共享代码的机制, 连Extension环境中的配置文件也没法写. 希望有人能够解答这个问题.

Autohome网站增强插件(Autohome boost)使用说明

安装

安装完插件后, 浏览的时候, 在浏览器的地址栏中会出现程序的图标, 此时表示安装成功了.
如图:
安装成功后的图标

车系收藏

这是该插件目前唯一的功能, 也是我自己最想要的功能.
安装完插件后, 登录autohome(必须登录), 进入车系页面, 比如进入福克斯的页面, 在车系页面的标题右边会出现收藏链接.
如图:
车系收藏链接

此时点击即可收藏此车系. 点击后, 链接显示为’已收藏’, 此时再次点击可取消收藏.
如图:
车系已收藏

收藏列表

登录后(必须要登录), 在网页顶行的位置, 显示用户名字的边上, 会出现新增加的菜单选项’收藏列表’. 此时可以点击进入查看自己的收藏列表(没有收藏的时候是空的).
如图:
收藏列表

分享到:
评论

相关推荐

    chrome的es插件

    总结起来,这个"chrome的es插件"是用于Google Chrome浏览器的一个Elasticsearch管理工具,名为"es-head",提供了用户友好的前端界面来操作和监控Elasticsearch集群。它包括源代码,用户可以根据需要进行定制,并且...

    chrome浏览器同步插件xBrowserSync

    Chromium是Google Chrome浏览器的基础开源项目,许多其他第三方浏览器,如Brave、Opera、Vivaldi等,都是基于此内核构建的。 xBrowserSync的工作原理是通过加密技术保护用户的个人数据,并在用户的各个设备间同步...

    es浏览器插件chrome插件

    1. **chrome** - 这是指Google Chrome浏览器,一个广泛使用的Web浏览器,支持各种扩展和插件以增强其功能。 2. **elasticsearch** - Elasticsearch 是一个基于Lucene的开源搜索引擎,它具有实时、分布式、可扩展的...

    禅道开源版11.5LDAP插件

    禅道开源版11.5 LDAP插件是一个用于禅道项目管理软件的扩展工具,它主要功能是集成轻量级目录访问协议(LDAP)进行用户身份验证。此插件允许禅道系统与LDAP服务器通信,使得用户可以通过已有的LDAP账户登录禅道,...

    90几套Unity开源项目.txt

    根据提供的文件信息,...综上所述,Unity开源项目为学习者提供了一个宝贵的学习资源库,无论是对于初学者还是有一定基础的开发者而言,都有着不可替代的价值。通过合理利用这些资源,可以加速个人技能的成长和发展。

    chrome 浏览器调用 ocx 插件配套文件

    3. **Chromium Embedded Framework (CEF)**:另一种方法是利用Chromium Embedded Framework,这是一个开源库,允许开发者将Chromium引擎嵌入到他们的应用程序中。通过这种方式,可以实现对OCX插件的支持,因为CEF...

    User-Agent Switcher for Chrome.zip

    "User-Agent Switcher for Chrome.zip" 是一个专为谷歌浏览器(Chrome)设计的插件压缩包,它允许用户在浏览网页时切换不同的User-Agent标识,从而模拟不同的浏览器环境或设备类型。User-Agent是一个字符串,通常由...

    chrome elasticsearch 插件

    "chrome elasticsearch 插件"这个标题可能指的是一个或多个特定的Chrome插件,它们专为与Elasticsearch的交互而设计。这些插件可能会提供以下功能: 1. **可视化界面**:通过图表、表格等形式展示Elasticsearch中的...

    Chrome插件伴侣.zip

    总之,Chrome插件伴侣是开发者和高级用户的一个实用工具,它弥补了Chrome浏览器在处理非官方插件方面的不足,使得.crx文件的安装变得简单易行。结合提供的使用说明,用户可以更高效地利用各种插件扩展Chrome的功能,...

    Chrome插件分享-Stylus安装包

    Chrome是一款流行的开源浏览器,以其速度、稳定性和安全性著称。软件/插件通常指的是能够扩展浏览器功能的第三方程序,如Stylus,它们提升了用户的浏览体验。 **总结:** Stylus是Chrome用户个性化网页样式的理想...

    Sense插件chrome浏览器.zip

    ElasticSearch是一个开源的分布式搜索引擎,具备高可靠性,支持非常多的企业级搜索用例。像Solr4一样,是基于Lucene构建的。支持时间时间索引和全文检索。 ElasticSearch作为一个基于Lucene的搜索服务器。它提供了一...

    配合ES使用-chrome插件sense

    总的来说,"配合ES使用-chrome插件Sense"是一个方便开发和管理Elasticsearch的工具,它简化了与ES交互的过程,提高了工作效率。如果你经常处理Elasticsearch的数据,那么掌握如何有效使用Sense将对你的工作大有裨益...

    chrome 新浪微博分享插件

    总结来说,"Chrome新浪微博分享插件"是一个开源的工具,允许用户方便快捷地将网页内容分享到新浪微博。它涉及到的技术包括Chrome浏览器扩展开发、JavaScript编程、HTML和CSS布局,以及可能的OAuth认证流程(用于安全...

    Chrome简易二维码插件

    总之,"Chrome简易二维码插件"是JavaScript开发的一个实例,涉及到了浏览器扩展开发、事件处理、第三方库的使用、DOM操作以及错误处理等多个方面,这些都是Web开发中不可或缺的技术点。通过分析和理解这样的插件,...

    weboffice for chrome firefox

    【标题】"weboffice for chrome firefox" 涉及的是一个专为谷歌Chrome和Firefox浏览器优化的在线办公解决方案。Weboffice是一款能够提供Web端文档编辑、查看和协作功能的应用,使得用户无需安装桌面软件即可在浏览器...

    一个基于Chrome的音视频会议的项目

    在描述中提到“一个基于Chrome的音视频会议的项目”,意味着开发者使用了Chrome浏览器作为运行平台,因为Chrome对WebRTC的支持最为全面和稳定。Chrome浏览器内置了必要的API,使得开发者能够方便地利用JavaScript...

    metersphere-chrome-plugin

    而"Metersphere Chrome 插件"则是这个平台的一个扩展,它的主要目的是简化JMeter的脚本录制过程,使用户能够在浏览器环境中轻松创建性能测试脚本。 在传统的JMeter脚本录制中,用户需要设置代理服务器,然后通过...

    ChromeExtensionDocument:chrome插件中文开发文档.zip

    "ChromeExtensionDocument:chrome插件中文开发文档.zip"是一个包含详细中文指南的压缩包,旨在帮助开发者理解并创建自己的Chrome插件。 开发Chrome扩展首先需要了解manifest.json文件,这是每个扩展的核心配置文件...

    eolinker插件chrome测试

    Eolinker Chrome测试插件是eolinker工具的一个扩展,它可以直接在浏览器环境中运行,无需用户额外安装桌面应用。通过这个插件,开发者可以在任何网页上快速发起接口请求,查看返回结果,极大地提高了测试效率。 **...

    chrome 插件下载

    "Chrome Sniffer"这个插件可能是一个网络嗅探工具,帮助用户检测和分析网页上的各种技术栈,如JavaScript库、框架、字体和服务。这类插件对于开发者来说非常有用,他们可以借此了解网站的构建方式,学习新技术或者...

Global site tag (gtag.js) - Google Analytics