谷歌扩展V2升级V3一些功能的汇总

 

  1. 扩展的页面通信
    1. service-worker.js(原v2版本的background.js)与popup页面的通信
    2. popup页面不能直接使用缓存(cookie等),必须在service-worker等页面使用,使用sendMessage与service-worker通信,在service-worker获取到缓存后再回传给popup页面
    3. js页面与扩展的通信:js插件里使用window.postMessage发送信息,content使用window.addEventListener进行监听,并对信息进行分类后传递给service-worker也就是v2的background,这样就间接的实现了数据的通信

  

 

    2.V3版本的content(注入页面js)与v2版本不同,v3只能操作dom,与当前页面也只能通过dom进行通信,故此不能直接和扩展进行通信,目前的解决方案是:

 

    1. 先定义好我们的js插件,当页面引入插件后以api的形式通过插件与扩展进行交互
    2. js插件里使用window.postMessage发送信息,content使用window.addEventListener进行监听,并对信息进行分类后传递给service-worker也就是v2的background,这样就间接的实现了数据的通信
    3. 同理反过来就是service-worker传递数据给当前使用扩展的页面
    4. 需要注意的是每一步都需要一个唯一的id,不然就会导致数据传递错乱

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章