Browser Action类型的Google Chrome扩展程序,通常在Chrome浏览器的工具栏中,地址栏的右侧,有一个始终存在的图标。也就是说,这个图标与浏览器相关,只要安装了该Chrome扩展的浏览器,就会显示该图标。

鼠标悬浮到图标上会给出提示信息,鼠标点击图标会弹出popup页面。图标还可以根据条件设置不同的徽章(Badge),提示用户不同的条件状态。

定义Browser Action类型的Google Chrome扩展程序,首先要在manifest.json文件中注册如下:

{

...

"browser_action": {

"default_icon": { // optional

"19": "images/icon19.png", // optional

"38": "images/icon38.png" // optional

},

"default_title": "Google Mail", // optional; shown in tooltip

"default_popup": "popup.html" // optional

},

...

}

图标(icon)的默认尺寸是19px*19px,可以是WebKit能够显示的任何静态图片(如BMP, GIF, ICO, JPEG, PNG等),也可以是HTML5的canvas元素。可以直接在manifest.json文件中设置图标的图片,也可以通过chrome.browserAction.setIcon(object details, function callback)方法设置图标的图片。其中的details对象有两个名为imageData和path的对象属性,二者必须设置其一,如details.imageData = icon19.png(等价于details.imageData = {'19': icon19.png})或details.path= icon19.png(等价于details.path = {'19': icon19.png})。

提示(tooltip)可选,可以直接在manifest.json文件中设置,也可以通过chrome.browserAction.setTitle(object details)方法设置。其中的details对象有一个名为title的字符串属性,示例如details.title='An extension for strocks.'。提示的字符串支持国际化。

徽章(badge)可选,是在图标之上叠加显示的文本,可以灵活地显示Browser Action的状态变化。但是由于显示空间有限,通常徽章的文本不多于4个字符。可以通过chrome.browserAction.setBadgeText(object details)方法显示徽章的文本,其中的details对象有一个名为text的字符串属性,示例如details.text='A'。可以通过chrome.browserAction.setBadgeBackgroundColor(object details)方法显示徽章的背景色,其中的details对象有一个名为color的属性。color属性可以是字符串,如details.color='#FF0000'或details.color='#F00'。color属性也可以是数组,如details.color=[255, 0, 0, 255]。

弹出框(popup)可选,点击图标时弹出框出现。弹出框是一个HTML文件,尺寸根据其内容自动设置。可以直接在manifest.json文件中设置popup页面,也可以通过chrome.browserAction.setPopup(object details)方法设置popup页面,其中的details对象有一个名为popup的字符串属性,示例如details.popup='somePath.popup.html'。如果details.popup=''则表示没有popup页面。

Chrome浏览器扩展开发系列之四:Browser Action类型的Chrome浏览器扩展的更多相关文章

  1. Chrome浏览器扩展开发系列之十九:扩展开发示例

    翻译总结了这么多的官网内容,下面以一款博主开发的“沪深股票价格变化实时追踪提醒”软件为例,介绍Chrome浏览器扩展程序的开发,开发环境为Eclipse IDE+Chrome Browser. “沪深 ...

  2. Chrome浏览器扩展开发系列之十四

    Chrome浏览器扩展开发系列之十四:本地消息机制Native messaging 时间:2015-10-08 16:17:59      阅读:1361      评论:0      收藏:0    ...

  3. Chrome浏览器扩展开发系列之十四:本地消息机制Native messagin

    Chrome浏览器扩展开发系列之十四:本地消息机制Native messaging 2016-11-24 09:36 114人阅读 评论(0) 收藏 举报  分类: PPAPI(27)  通过将浏览器 ...

  4. Chrome浏览器扩展开发系列之五:Page Action类型的Chrome浏览器扩展

    Page Action类型的Google Chrome浏览器扩展程序,通常也会有一个图标,但这个图标位于Chrome浏览器的地址栏内右端.而且这个图标并非始终出现,而是当某指定的页面打开时才会出现.也 ...

  5. Chrome浏览器扩展开发系列之十二:Content Scripts

    Content Scripts是运行在Web页面的上下文的JavaScript文件.通过标准的DOM,Content Scripts 可以操作(读取并修改)浏览器当前访问的Web页面的内容. Cont ...

  6. Chrome浏览器扩展开发系列之十六:扩展中可用的Chrome浏览器API

    除了Chrome浏览器支持的chrome.* API之外,Chrome浏览器扩展还可以使用Chrome浏览器为Web页面或Chrome app提供的APIs.对于Chrome浏览器2支持的API,还可 ...

  7. Chrome浏览器扩展开发系列之十一:NPAPI插件的使用

    在Chrome浏览器扩展中使用HTML和JavaScript非常容易,但是如何重用已有的非JavaScript遗留系统代码呢?答案是将NPAPI插件绑定到Chrome浏览器扩展,从而实现在Chrome ...

  8. Chrome浏览器扩展开发系列之十:桌面通知Notification

    Desktop Notification也称为Web Notification,是在Web页面之外,以弹出桌面对话框的形式通知用户发生了某事件.Web Notification于2015.9.10成为 ...

  9. Chrome浏览器扩展开发系列之三:Google Chrome浏览器扩展的架构

    1) 不可视的background页面 Google Chrome扩展往往包含一个不可见的background页面,Google Chrome扩展的主要业务逻辑都位于此.有两种类型的backgroun ...

随机推荐

  1. mac下eclipse安装svn插件-subclipse

    目前Eclipse最常用的svn插件莫非subclipse,在windows系统下的安装svn client和subclipse比较简单.本文介绍如何在mac安装svn插件和subclipse. 一. ...

  2. webpack 2.x 配置

    以下展示2.x 配置文件信息 v1 迁移至 v2 官方有更详细的说明 具体详见 https://webpack.js.org/guides/migrating/ 只列举常用到参数进行描述, 或者我在使 ...

  3. Asp.Net Core轻量级Aop解决方案:AspectCore

    什么是AspectCore Project ? AspectCore Project 是适用于Asp.Net Core 平台的轻量级 Aop(Aspect-oriented programming) ...

  4. javaSE_05Java中方法(函数)与重载、递归-思维导图

    思维导图看不清楚时: 1)可以将图片另存为图片,保存在本地来查看 2)右击在新标签中打开放大查看

  5. Python成长之路 — 字典

    一.字典的定义与创建 字典是Python中唯一内建的映射类型.你可以将其想象成书本的目录,章节名称代表"key",页码则代表"value".书本的目录本质上是也 ...

  6. VMware 创建多台Linux机器并配置IP

    1.查看并分配虚拟网络 我们首先要知道 VMware 三种网络模式的区别. ①.Bridged(桥接模式):就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信.在桥接的作用下,类似于把物理主机虚拟为 ...

  7. Android面试题目2

    1. 请描述下Activity的声明周期. onCreate->onStart->onRemuse->onPause->onStop->onRestart->onD ...

  8. 关于JS跨域问题的解决

    这里不提供什么高深的代码了,只说明一个解决跨域问题的方法,个人觉得这个方法是最方便也是最有效的. 那就是一用不同源的JS,虽然JS不允许不同源的访问,但是可以引用不同源的JS,用这样的方法我们可以引用 ...

  9. cpp(第十七章)

    1.baseic_ostream<charT,traits>& write(const char_type *s,streamsize n),cout.write()第一个参数提供 ...

  10. JavaScript中的string对象及方法

    string对象 string对象的两种创建 var a="hello"; var b=new String("hello"); //下面是方法 //charA ...