扩展的一个很重要的需求是能够有一个相对稳定的地方存储一些状态和运行一些逻辑,backgroundPage就是为此诞生的。

    Manifest.xml要为扩展添加backgroundPage,需要在manifest.xml中添加相应的字段,并在扩展目录中创建对应的html文件。

    1. ...
    2. <extension>
    3. ...
    4. <background page="filename.html"/>
    5. ...
    6. </extension>

    backgroundPage是一个在扩展进程中常驻运行的html页面,filename.html为这个页面对应的文件名。这个页面会使用webkit内核解析。因此,可以使用诸如localStorage、video、canvas等html5的特性。这里值得一提的是localStorage,在backgroundPage中存储的localStorage值,同样可以在PopupPage中获取,因此扩展中多用localStorage作为存储扩展设置的方式。

    backgroundPage可以通过sogouExplorer.extension系列api,和sogouExplorer.tabs系列api与标签页中的扩展代码(contentScript)进行通信。