经常使用google查资料,由于大家都知道的问题,每次点击链接可能不能正常跳转,但其实都是可以打开的链接。以前好像见过一个插件,来解析google的结果链接,直接跳转到目标链接,但现在想用却找不到了。本来自己用python写了一个工具来解析,但实在是copy起来难受,想想,干脆自己写一个插件算了。
首先做个入门:
网上教程也挺多的,官方的资料也是很全面的。
插件相关教程:
https://developer.chrome.com/extensions/
http://open.chrome.360.cn/extension_dev/overview.html
先要做的就是了解如何去开发,如何入手,可以有哪些实现。
为了实现我现在这个需求,那么只需要扩展右键菜单就行,能取到当前的url,并从url中获取到实际路径,并在新标签中打开提取的url。
开始做了:
建manifest.json插件描述文件,这个是必须的(具体参数可以看看http://open.chrome.360.cn/extension_dev/manifest.html)。
里面内容:
{ "name": "google url", "version": "0.5", "description": "直接访问google搜索结果url.", "icons": { "128": "google.png", "16": "google.png" }, "permissions": [ "contextMenus", "tabs" ], "background": { "scripts": ["contentscript.js"] }, "manifest_version": 2 }
图标随便找一个,一个图片就够了,但16的配置一定要。
权限要contextMenus和tabs
通过background参数来注册我们的右键菜单内容。指定js文件 "scripts": ["contentscript.js"] ,还可以指定page,那就可以在菜单上显示内容了。
新建contentscript.js,这个js名称没有要求,自己随便写。
contentscript.js中的内容:
var id = chrome.contextMenus.create({ "title": "open url", "contexts": ["link"], "onclick": openUrlWindow}); function openUrlWindow(info, tab) { var url = info['linkUrl']; url = getQueryString(url, 'url'); chrome.tabs.create({"url":url, "active": false}); } function getQueryString(url, name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = url.match(reg); if (r != null) return unescape(r[2]); return null; }
chrome.contextMenus函数创建参数中的tilte和onclick比较好理解,contexts是指,在什么内容上点击右键才出现此内容,这里是设置为"link"。
chrome.contextMenus 和 onclick触发函数中的info和tab具体参数和属性看文档就知道了。当然你还可以通过alert(JSON.stringify(info))来看看。
官方对于右键菜单扩展有个样例 https://developer.chrome.com/extensions/examples/api/contextMenus/basic.zip
实际效果: