chrome扩展结构

每个打开的页面都运行在web页面环境中。一个正常的web页面环境,会先初始化css,然后建立DOM树,接着加载图片和frame等子资源,然后顺序执行所有js。

l  chrome扩展本身运行在一个进程中,称之为background环境。background环境生命周期等同于浏览器生命周期。即只要浏览器在运行,那么background环境就一直在运行。在background环境中,借助API,可以操作和修改浏览器本身的各种属性,例如Tab相关内容,cookies,history,其他扩展,浏览器外观,等等。

l  扩展通常显示在地址栏右侧,或者地址栏最后。扩展的表现往往是一个图标,加上一个页面。点击图标,页面会以气泡菜单的形式弹出。这个弹出的页面,称为popup环境。popup页面中往往包含很多对web页面的设置,例如背景色等。通过chrome的API,可以在popup环境中对页面DOM进行修改。然而这种修改往往是比较简单的。

l  为了满足对页面的DOM进行初始化大量且复杂的修改需求,扩展可以将css与js文件注入到web页面中,就像这些文件本来就被包含在web页面中一样。注入的css与js由扩展的content_script属性进行设置,称之为content_script环境。content_script环境虽然是注入到web页面中的,但仅仅与web页面共享DOM,并不会共享js变量与函数,所以不会产生命名冲突。同时,web页面引入的各种库和扩展,例如jquery等,也不会被共享。若希望在content_script中使用库,则需要单独引入。

l  另外,在扩展管理页面,提供了一个连接可以跳转到自定义的扩展设置界面。该页面称之为设置环境

总结一下:

·background环境:负责浏览器相关的操作。

·popup环境:负责扩展的显示和设置,可进行web页面修改。

·content_script环境:负责web页面的修改。

·设置环境:负责扩展本身的设置。

猜你喜欢

转载自blog.csdn.net/fyyyr/article/details/80949917