`
yanzilee9292
  • 浏览: 537738 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Chrome扩展开发教程学习笔记(一)

 
阅读更多

原文来自: http://marinzou.blogbus.com/logs/74915478.html

 

Buzz里的一条回复更新顶起了一个旧贴,是一位Chrome同好关于制作某个chrome扩展的呼吁。记得当时看过,心里也激荡了一小下创造的热情,不过当时什么都一团糟,所以在未知的chrome扩展的学习难度前止步,此念遂放下心头,置之度外。今天旧念重温,大概是因为工作进入了一个新阶段且较有进展而导致心情大好,这次创造的热情挟着我搜索、阅读了一些扩展制作的基本知识,现将笔记记录于下。是官方资料承蒙各位网友的辛苦劳动的翻译稿,感觉讲得不太深入,仅涉及布局,而具体API的调用基本没讲。不过里面关于设计的一般性原则挺有价值。

概述,原文见http://dev.chromechina.com/thread-2255-1-1.html
1. Chrome扩展的组成文件:manifest文件(主文件,json格式);至少一个HTML文件(主题可以没有HTML文件);JavaScript文件(可选);任何其他你需要的文件(比如图标图片)。
2. 一般来说,文件调用形式为相对地址调用,类似HTML。当使用Google Chrome debugger时,文件的地址为下列格式:chrome-extension://<extensionID>/<pathToFile>,其中<extensionID>是所在扩展的唯一标示符,即其id;<pathToFile>是文件相对扩展根目录的位置。
3. 主文件取名manifest.json,用来描述这个扩展,包括扩展名字、版本、调用的文件、可用域等信息。
4. 绝大部分扩展有一个非显式的background文件控制着整个扩展的运行,即background.html,内涵javascript脚本以控制浏览器行为。对于html文件,可调用chrome.tabs.create()或window.open()以显示之。同一扩展的HTML文件可以互相访问DOM结构,引用其内定义的函数。
5. 如果需要和网页交互,则需要一个内容脚本(Content script),常由JavaScript编写,在网页载入完成后调用。可将内容脚本看做是网页的一部分,而非直接隶属于扩展。
6. 扩展的所有文件都由同一个进程执行,网页能够直接给其他页面发送命令。一旦页面中引用了另外的页面,第一个页面就可以调用其他页面的函数,甚至控制DOM。引用扩展中的方法可以用诸如getViews()或者getBackgroundPage()这些chrome.extension方法。

浏览器行为,原文见http://dev.chromechina.com/thread-2307-1-1.html
7. Browser Actions主要负责在Chrome地址栏右侧添加扩展的图标,此外还可以设置提示文字、图标标记、弹出窗口,这部分内容需在manifest.json中写出。
8. Browser Action内容中必须指定图标,可以用default_icon语句,也可以调用setIcon()函数。图片可用静态图片或HTML中的canvas元素,图标在浏览器中总是可见的。静态图片可以是任意常见格式的图片,包括BMP,GIF,ICO,JPEG和PNG。图片不论大小,均被浏览器缩放成19 px*19 px。
9. 一个小技巧是将图标边缘使用alpha透明,这样的话可以融合到各种不同的浏览器主题里。
10. 提示文字是指将鼠标移到扩展图标上显示的文字,其设置可用用default_title定义,也可以调用setTitle()函数。
11. 图标标记是指覆盖在扩展图标上的一些文字,比如Gmail提醒扩展图标上未读邮件数等,最多容纳4个字母。设置标记文字或者背景可以分别调用函数setBadgeText()和setBadgeBackgroundColor()。
12. 点击扩展弹出小窗的行为也由Browser Action定义,可用default_popup定义某个html文件为默认弹出窗口的html脚本,当然也可以调用函数:setPopup()。
13. 仅在小部分页面起作用的话就不要用browser action,而是用page actions。

选项页面,原文见http://dev.chromechina.com/thread-2377-1-1.html
14. 选项页面(Options Page)用于让用户自定义扩展。选项页需要在manifest中定义,格式是: “"options_page": "options.html",”,这样就把options.html指定为选项页面了,然后编写options.html脚本即可。

重置页面,原文见http://dev.chromechina.com/thread-2456-1-1.html
15. 重置页面(override page)即用于替换Google Chrome默认新标签页的自制页面。在manifest中定义, 如:"chrome_url_overrides": {"newtab": "newtab.html"},”(注意格式),其中新标签页为newtab.html。
16. 重置页面设计的几个原则:保持页面简洁,使得能够快速加载;写入代码:<title>New Tab's Name</title>,确保有<title>标签;让用户新建标签页的时候键盘焦点在地址栏而非页面上;不要模仿默认的新标签页面,以免迷惑用户。

页面行为,原文见http://dev.chromechina.com/thread-2532-1-1.html
17. 页面行为(Page Action)仅在当前页面内可用,也需在manifest中定义,格式如:“{"page_action": {"default_icon": "icons/foo.png","default_title": "Do action","default_popup": "popup.html"},”。
18. 与浏览器行为不同(参8),页面行为的图标可在显示/隐藏间切换。默认情况下,地址栏图标是隐藏的。可用函数show()和hide()分别使地址栏图标显示和隐藏。调用show()时必须指定在哪些标签页上显示。
19. 使用页面行为的一些原则:在大部分页面起作用的功能请使用扩展图标;使用比扩展图标更小的图标,一般来说为19 px,且边缘带有模糊效果;不要总是激活图标,否则很讨厌。

事件,原文见http://dev.chromechina.com/thread-2854-1-1.html
20. 事件(Event)即当某些行为发生所触发的函数,这些行为包括打开新标签、点击按钮之类。事件的添加和绑定通过addListener()进行,addListener()用于注册行为的那个函数,此外还有removeListener(function callback(...))和hasListener(function callback(...))等。

目前就翻译到这里,另有一个交流会的优酷视频,稍看了一下,觉得present得不好,没看。下一步准备开始读那个加入了很久但是一直在潜水的chrome迷的开发指南翻译计划,如果水平到了还可以顺便做做翻译或者校对,嘻嘻。

备忘:地址:https://wave.google.com/wave/#restored:wave:googlewave.com/w+ovaN93tVC

分享到:
评论

相关推荐

    chrome扩展插件的3个例子帮助入门

    在提供的压缩包文件中,`note.txt`可能包含了开发这些例子的笔记或教程,而`zhuru1`、`zhuomian_tixing`、`hello1`可能是对应的代码示例文件,包括`manifest.json`、JavaScript脚本和其他资源文件。学习这些文件,...

    kindle-to-evernote-chrome-extension:简单的Chrome扩展实用程序,用于复制和格式化kindle笔记并粘贴到Evernote中

    《Kindle to Evernote Chrome扩展:连接阅读与笔记的桥梁》 在数字化时代,阅读工具如Kindle为我们提供了丰富的电子书资源,而笔记管理软件Evernote则帮助我们整理和保存知识。为了无缝衔接这两个平台,"Kindle to ...

    jquery 学习笔记一

    6. **插件扩展性**:jQuery 拥有一个庞大的插件生态系统,可以用来扩展其核心功能,满足各种开发需求。 ### jQuery 学习资源: 1. **官方网站**:*** 是学习和下载最新版本jQuery 的官方渠道。 2. **中文参考手册...

    文章::bookmark:我的学习笔记和记忆-分享我的学习片段和与你的回忆

    这篇文章的标题和描述暗示了它是一个个人的学习笔记集合,作者希望通过分享自己的学习经历和记忆,来帮助读者理解和学习各种IT技术。从标签中我们可以看出,笔记涵盖了多个热门的前端开发框架和技术,包括React、...

    vue笔记.docx

    为了提升开发效率,你可以学习VSCode的基础操作,并参考官方文档或简书教程进行深入学习。 接下来,你需要设置开发环境。安装webpack,这是一个模块打包工具,它可以将多个模块组合成一个或多个浏览器可加载的文件...

    Tutorialzine Extension-crx插件

    "Tutorialzine Extension" 可能提供了一系列教程或学习资源,与教程杂志网站(Tutorialzine)相关。这可能意味着它能够帮助用户更方便地访问教程、保存喜爱的内容或者提供离线阅读功能。由于具体功能没有详细描述,...

    Node.js-Nodebook-一个支持多种语言包含WebUI的简约REPL

    8. **扩展性**:Nodebook作为一个开源项目,允许社区开发和贡献插件,以扩展其功能,满足不同用户的需求。例如,增加新的语言支持、优化编辑器特性或者集成其他开发工具。 总之,Nodebook是Node.js开发者的一个强大...

    ReactLearn:React学习基础笔记

    ReactLearn是针对React的基础学习笔记,旨在帮助初学者理解并掌握React的核心概念和技术。在ReactLearn-master这个压缩包中,可能包含了完整的React项目源码、教程文档和其他相关资源,这将是一个非常有价值的自学...

    source

    "前端"、"nodejs"、"jsp自定义标签"这些文件夹名则直接对应了上述的技术领域,可能包含了相关的示例代码、教程或者笔记。综合来看,这个压缩包可能是为了分享或备份关于这些技术的学习资料和实践案例。

    study-blog:学习nodejs中的一些笔记

    Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它采用事件驱动、非阻塞I/O模型,使其轻量又高效,非常适合用来进行数据密集型实时应用的开发。Node.js不仅让JavaScript能够脱离浏览器在服务器端运行,还为...

    Notablify-crx插件

    Notablify-crx插件是一款专为浏览器设计的扩展程序,它主要功能是提供便捷的注释服务。这款插件的特色在于它利用了...对于开发者来说,这款插件也是一个学习如何利用Web Storage API和构建Chrome扩展程序的好例子。

    Page note-crx插件

    在技术层面上,"Page note-crx"作为一款Chrome扩展程序,是基于Chrome的浏览器扩展API开发的。它利用了浏览器的JavaScript和HTML5功能,能够在用户的浏览器环境中运行,无需安装额外的软件。扩展程序的CRX文件是...

    传智博客黑马前端36期(2018)

    这个课程资源可能包括了一系列的教程、笔记、实战项目等内容,通过深入学习,学员可以了解到当时前端开发的主流技术和最佳实践。 在这个时期的前端开发中,HTML5、CSS3和JavaScript是基础,因此课程很可能涵盖了...

    selenium 學習筆記

    **Selenium 学习笔记** Selenium 是一个强大的开源自动化测试框架,主要用于Web应用程序的测试。它支持多种编程语言,包括Java、Python、C#、Ruby等,使得开发者和测试工程师能够编写可跨浏览器运行的测试脚本。...

    SAP Note and KBA Search-crx插件

    描述中提到的"搜索SAP Notes,知识库文章和更多"暗示了该插件不仅限于基础的笔记搜索,可能还支持对其他相关资料的检索,如SAP社区的讨论、教程、最佳实践等。这使得该工具成为SAP管理员、开发人员或任何需要频繁...

    firefox firebug 插件

    在提供的压缩包文件中,"4742249.htm"可能是包含相关教程或文章的HTML文件,"FirefoxChinaEdition.rar"可能是一个Firefox中国版的安装包,"firebug-1.8.0b2.xpi"是Firebug的扩展文件,可以直接安装到Firefox中,而...

    pattern-language-cards

    综合以上信息,我们可以推测这个项目是一个关于JavaScript编程的资源集合,可能包含一系列设计模式的解释、APL编程语言的学习笔记,以及可能与Node.js相关的实践示例。其中,设计模式部分可能通过卡片形式呈现,便于...

    jQ工具提示插件Tooltipify.zip

    5. **可扩展性**:作为开源项目,Tooltipify允许开发者进行二次开发,添加新的功能或者优化现有功能。 三、使用教程 1. **引入依赖**:首先,确保项目中已经包含了jQuery库,然后引入Tooltipify插件的JavaScript和...

    YouWatch-crx插件

    【YouWatch-crx插件】是一款专为Google Chrome浏览器设计的扩展程序,它允许用户轻松地在任何支持视频播放的网站上启用“画中画”(Picture-in-Picture,简称PiP)模式。这款插件的主要功能是为用户提供更加便捷的...

    WizStudy:为知笔记里的所有练习项目

    【标题】"WizStudy:为知笔记里的所有练习项目" 涉及的主要知识点是JavaScript,这是一款基于JavaScript开发的、与为知笔记(WizNote)相关的学习和实践平台。JavaScript是一种广泛用于Web开发的脚本语言,它允许在...

Global site tag (gtag.js) - Google Analytics