Chrome Google搜索结果直接跳转扩展

前段时间Google hosts无法正常使用时写来自己用的一个Chrome扩展,主要功能是解决打开Google搜索结果时,由于经过Google跳转而导致网页被屏蔽的问题。

由于扩展只是自己个人使用,所以做得比较粗糙,还有一些小bug。

扩展清单文件(manifest.json):

{
  "name": "GoogleDirectLink",
  "version": "1.0",
  "description": "帮助访问由于某些原因而不能访问的Google搜索结果",
  "background": { "scripts": ["background.js"] },
  "browser_action" :
  {
    "default_icon" : "icon-19.png",
    "default_title" : "非Google搜索结果页"
  },
  "permissions" : [
    "tabs", "http://*/*", "https://*/*"
  ],
  "icons" : {
    "48" : "icon-48.png",
    "128" : "icon-128.png"
  },
  "manifest_version": 2
}

程序执行文件(background.js):

    // GoogleHelper
// Copyright (c) 2012 csuzhangxc. All rights reserved.
        
// 默认禁用扩展工具按钮
chrome.browserAction.disable();        
        
// 扩展工具图标被点击
function iconClicked(tab) {
    // JS注入
    chrome.tabs.executeScript(null,{code:"
        var results = document.getElementsByClassName('l');
        for(var i = 0; i < results.length; ++i) {
            if (results[i].href.indexOf('www.google') > -1
                && results[i].href.indexOf('q=') > -1) {
                var start = results[i].href.indexOf('&url=http')+5;
                var stop = results[i].href.indexOf('&ei=');
                var encodedURL = results[i].href.substring(start, stop);
                var decodedURL = unescape(encodedURL);
                results[i].href = decodedURL;
            }
            results[i].removeAttribute('onmousedown');
        }
    "});
    var details = {'title':'已点击'};
    chrome.browserAction.setTitle(details);
    chrome.browserAction.disable();
}    
        
// 检测是否为Google搜索结果页URL
function checkForValidUrl(tab) {
    // 是Google搜索结果页URL  
    if (tab.url.indexOf('www.google') > -1
        && tab.url.indexOf('q=') > -1) {
        // 启用扩展工具按钮
        chrome.browserAction.enable();
        var details = {'title':'请点击'};
        chrome.browserAction.setTitle(details);
    } else {
        chrome.browserAction.disable();
        var details = {'title':'非Google搜索结果页'};
        chrome.browserAction.setTitle(details);
    }
}
        
// tab更新
function tabUpdated(tabId, changeInfo, tab) {
    chrome.tabs.get(tabId, checkForValidUrl);
}
// 活动tab改变
function activeTabChanged(activeInfo) {
    chrome.tabs.get(activeInfo.tabId, checkForValidUrl);
}
        
// 监听tab更新
chrome.tabs.onUpdated.addListener(tabUpdated);
// 监听活动Tab改变
chrome.tabs.onActivated.addListener(activeTabChanged);
// 监听扩展工具图标点击
chrome.browserAction.onClicked.addListener(iconClicked);

打包好的Chrome扩展下载地址(由于没有在Chrome扩展中心上架,需要拖放到扩展程序页chrome://chrome/extensions/安装):

http://pan.baidu.com/share/link?shareid=186331&uk=2987237834

 github:https://github.com/csuzhangxc/GoogleDirectLink.git

Chrome Google搜索结果直接跳转扩展》上有1条评论

发表评论

电子邮件地址不会被公开。