chrome扩展写法

  最近看到公司同事经常写chrome扩展,来提高生成效率,回想想自己以前也写过chrome扩展,但是由于不经常写,也没做积累也都忘记了,现在重新回顾一下。

一、chrome扩展基本概念

  chrome扩展应用其实是压缩在一起的一组文件,包括HTML,CSS,Javascript脚本,图片文件,还有其它任何需要的文件。 应用(扩展)本质上来说就是web页面,它们可以使用所有的浏览器提供的API,从XMLHttpRequest到JSON到HTML5全都有。

  应用(扩展)可以与Web页面交互,或者通过content script或cross-origin XMLHttpRequests与服务器交互。应用(扩展)还可以访问浏览器提供的内部功能,例如标签或书签等。

二、chrome扩展开发需要掌握的基础知识

  1、Chrome扩展文件

    Chrome扩展文件以.crx为后缀名,在Google Chrome扩展官方网站下载扩展时,Chrome会将.crx文件下载到Chrome的Application Data文件夹的User Data\Temp下,一般是C:\Documents and Settings\User\Local Settings\Application Data\Google\Chrome\User Data\Temp,安装完成或者取消安装,该文件就会被删除。.crx实际上是一个压缩文件,使用解压文件打开这个文件就可以看到其中的文件目录:

  因此可以认为,我们实际上就是写一个Web应用,然后将按照Chrome的规定将一个快捷方式放在Chrome工具栏上。

  2、Browser Actions(扩展图标)

  把Browser Actions翻译成扩展图标不是很准确,但它的功能就是把你的应用显示在Chrome工具栏上。我们在上面看到一个文件manifest.json,就是使用这个文件来把相应的图标和其他参数注册到Browser Actions。比如下图中就是EverNote的扩展图标。

  3.Page Actions(地址栏图标)

  如果你熟悉一些Chrome插件的话,你一定会发现有些扩展的图标不是显示在地址栏的右边,而是显示在地址内部右方,这就是Page Actions地址栏图标。

  

  可以看出上面中有三个Page Actions,图中我标出的是Chrome添加书签,现在你就会发现其实这个也是Chrome的扩展,只不是它是直接内置在Chrome的。

  Page Actions与Browser Actions的区别就是Page Actions不是随时都是显示的,必须在特定的页面中这个功能才能使用。因此在开发中注意:如果不是全部页面中都能使用的功能请使用Page Actions方式

  4、popup弹出窗口

  popup属于Browser Actions,当点击图标时出现这个窗口,可以在里面放置任何html元素,它的宽度是自适应的。当然,这个弹出窗口不会被Chrome拦截的:)

  如下图中是evernote的popup窗口:

  

  

  5、Background Pages后台页面

  这个窗口不会显示,它是扩展程序的后台服务,它会一直保持运行。比如在一些需要数据保存程序中,如果当前用户关闭popup,就需要Background Pages来进行相应的操作。

  6、chrome扩展所包含的文件

  每个应用(扩展)都应该包含下面的文件:

  • 一个manifest文件
  • 一个或多个html文件(除非这个应用是一个皮肤)
  • 可选的一个或多个javascript文件
  • 可选的任何需要的其他文件,例如图片

  在开发应用(扩展)时,需要把这些文件都放到同一个目录下。发布应用(扩展)时,这个目录全部打包到一个应用(扩展)名是.crx的压缩文件中。如果使用Chrome Developer Dashboard,上传应用(扩展),可以自动生成.crx文件。

三、chrome扩展示例

  目录结构:

  manifest.json文件

{
    // 必须的字段
      "name": "My Chrome Extension",
      "version": "1.0",
      "manifest_version": 2,
      // 建议提供的字段
      "description": "MY SELF CHROME EXTENSION",
      "icons": {
          "48": "images/1.png" ,
          "16" : "images/1.png"
      },
    //  "default_locale": "en",   指定这个扩展保的缺省字符串的子目录:_lcoales。如果扩展有_locales目录,这个字段是必须的。如果没有_locales目录,这个字段是必须不存在的。

      // 多选一,或者都不提供
      "browser_action": {
        "default_icon": "images/1.png" ,
        "default_title": "My Chrome Extension",
        "default_popup": "index.html"
      }
}  

index.html文件:

<!DOCTYPE HTML>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style type="text/css">
    *{margin:0;padding:0;}
    body{color:#333;overflow: hidden;margin: 0px;padding:5px;background: white;font-size:12px;}
    img{margin:0 4px;}
    #addItemDiv{color:#ccc;}
    .hide{display:none;}
    .show{display:block;}
    .taskItem{cursor:pointer;}
    input{width:100%;}
    label.on{width:12px; display:inline-block; height:12px; background:url(images/bg_task_on.gif) no-repeat 0px 2px;}
    label.off{width:12px; display:inline-block; height:12px; background:url(images/bg_task_off.gif) no-repeat 0px 2px;}
    </style>
</head>
<body>
    <div id="newItem" class="gray">添加新项</div>
    <div id="addDiv" class="hide"><input type="text" id="txtTitle" /></div>
    <div id="taskItemList">
        <div class="taskItem">
            <label class="on"></label><span class="taskTitle">新任务</span>
        </div>
        <div class="taskItem">
            <label class="off"></label><span class="taskTitle">已完成任务</span>
        </div>
    </div>
</body>
</html>

  我们将文件加拖拽到chrome扩展中就会看到:

  是不是很简单,一个简单的小例子就这样完成了。

四、打包chrome扩展程序

  在浏览器窗口输入chrome://extensions/,或者菜单 ->设置 ->扩展程序,会看到有两个菜单“加载正在开发的扩展程序”和“打包扩展程序”

  我们点击打包扩展程序:

  就会看到生成了两个文件:mychrome.pem 和 mychrome.crx, mychrome.crx解压就可以看到元素的目录,那么我们可以把mychrome.crx扩展上传到chrome应用商店。

五、上传chrome扩展到chrome商店

  进入地址https://chrome.google.com/webstore/developer/dashboard,需要5刀,注册才能发布。

  

资料来源:

  1. 手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单
  2. 手把手教你开发Chrome扩展二:为html添加行为
  3. 手把手教你开发Chrome扩展三:关于本地存储数据
  4. 360极速浏览器应用开发平台
  5. Chrome扩展程序开发实例
  6. 一个初步的 Chrome Packaged App 写法
时间: 2024-07-31 17:07:38

chrome扩展写法的相关文章

一起来做chrome扩展《可配置的代理》

一.本文主要涉及相关内容: chrome.proxy pacScript browser_action popup localStroage 二.预览 (代理运行截图,图中的代理服务器有防火墙,暂不对外) 如图所示,代理配置界面通过点击browser_action按钮打开,在popup页面内进行.可以设置服务器,也可以添加删除站点.好了,开始一些简单的说明工作 三.proxy 在chrome扩展中,要使用proxy同任何一种chrome对象一样,需要在json配置中允许chrome操作,在之前的

一起来做chrome扩展《本地存储localStorage》

chrome中的本地存储其实也是用的HTML5中localStorage,唯一区别是chrome扩展有自己的localStorage,它属于这个扩展,而不属于一个域名.得用这一点可以很好的处理扩展自己的一些数据,而不受访问网站和域名的影响. localStorage基础 localStorage是HTML5特性,所以有些浏览器不一定支持,不过我们这里讲的是chrome扩展,所以完全不用担心这个问题.如果想在WEB页面上使用,那就要检查一下是不是支持它 可以这样的检测: if(window.loc

5 款可以带来幸福感的 Chrome 扩展

本文标签: Chrome扩展 扩展管理工具 Extentions Google 开始先明确一个问题, Chrome里, 有这样一个区分: 优化使用体验的东西称为扩展(Extentions) 增加额外性能的东西称为插件(Plugins) Firefox的插件(Add-ons)功能上等同于Chrome的扩展(Extentions) Firefox的add-on不叫插件,叫附加组件,包括了extension扩展和plugin插件. 感谢 @风葶云 指正 每个人的上网习惯不同, 使用扩展的情况的也各异,

5 款让微博等社交网站更加清爽好用 Chrome 扩展

本文标签: Chrome扩展 Extentions 社交网站 审美 Google 原文地址: <5 款让微博等社交网站更加清爽好用 Chrome 扩展> 不论你是在新浪微博上了解朋友近况还是浏览各种段子,或者是去 Facebook 和 Twitter 上看一看外面的世界 follow 一下自己喜欢的明星,社交网站几乎占据了我们大部分的上网时间. 虽然网站内容每天都在更新,但是天天盯着一模一样的网页 UI 看久了,难免会出现审美疲劳:而新浪微博也因为加入了各种各样用不到的功能,而变得臃肿不堪,每

12 款不能少的使网页浏览获得的最佳体验Chrome 扩展

原文地址:http://whosmall.com/?post=414 本文标签: Chrome扩展 网页浏览体验 引擎划词翻译工具 Chrome浏览器 相信不少朋友和我一样,每安装新的操作系统之后,都会使用 Safari/IE 下载 Chrome 浏览器,然后将后者作为主力上网浏览器,而将前者束之高阁.毕竟从体验上说,Chrome拥有快速流畅的浏览体验,当然强大丰富的扩展也是让我一见倾心的关键. 此前我们向各位介绍了数款颇受欢迎的 Chrome 扩展,而今天笔者我起一回私心,给大家安利一些我正在

chrome扩展程序开发之在目标页面运行自己的JS

大家都知道JS是运行在客户端的,所以,如果我们自己写一个浏览器的话,是一定可以往下载下来的网页源代码中加入js的.可惜我们没有这个能力.不过幸运的是,chrome的扩展程序可以帮我们做到这件事. Google Chrome是一个很强大的浏览器,提供了各种各样的插件,大大提升了使用了的效率,比如vimium.honx等. Google在提供这些插件的同时还允许用户开发自己的插件. 最近在写js的脚本采集程序,需要测试在网页中的运行情况,因此可以利用Chrome插件进行测试. 本文会做一个chrom

前端程序员必知的30个Chrome扩展

谷歌Chrome浏览器是网络上可用的最好的浏览器之一,并且自2011年11月超越了Firefox浏览器之后,已经成为了互联网上占主导地位的浏览器.今天,我想与大家分享一些最实用的谷歌Chrome浏览器扩展,可以帮助你提高工作效率. Devtools Terminal?——浏览器终端.牛逼的不得了! LiveReload——为官方LiveReload应用程序(Mac和Windows)和第三方,例如guard-livereload和yeoman,提供Chrome浏览器集成. BrowserStack

JS扩展 或 Jquery的扩展写法

<script>//JS扩展String函数test,其它类推String.prototype.test = function(s){ alert(this+s);}var str = 'hello';str.test('world');//helloworld //JQ扩展(function($){ $.fn.test = function(op){ var defaults = {a:'no'} var setings = $.extend(defaults,op); alert(seti

将 QQ 音乐、网易云音乐和虾米音乐资源「整合」一起的Chrome 扩展Listen 1

原文地址:http://whosmall.com/?post=418 本文标签: Chrome扩展 Chrome浏览器 Chrome扩展Listen1 音乐资源整合 Listen1安装方法 在 Chrome 上安装了这款名为 Listen 1 的插件,妈妈可是再也不用担心你找不到想听的歌了.它将 QQ 音乐.网易云音乐以及虾米音乐的音乐资源「整合」在了一起,你只需要输入音乐关键词,就可以方便地三大曲库中跳转搜索. 安装方法 Listen 1 的安装方法与一般的 Chrome Extension