1. chrome传递消息的API在不同的版本有变化,此段代码可以做一个兼容处理。
function compatibleChrome() { if (!chrome.runtime) { // Chrome 20-21 chrome.runtime = chrome.extension; } else if (!chrome.runtime.onMessage) { // Chrome 22-25 chrome.runtime.onMessage = chrome.extension.onMessage; chrome.runtime.sendMessage = chrome.extension.sendMessage; chrome.runtime.onConnect = chrome.extension.onConnect; chrome.runtime.connect = chrome.extension.connect; } }
2. 本地存储Localstorage
//只能设置字符串,如果是json也要转成字符串形式 window.localStorage.setItem("domain:key", "value"); //获取 window.localStorage.getItem("domain:key");
3. 如果要随时读取本地数据,需要在manifest.json配置background.js
{ ..., "background": { "scripts": ["js/background.js"] }, ... }
这样,content_script里面的代码就可以随时读取Localstorage里面的数据,不然的话就需要Browser_action的popup.html一直打开。