更新chrome扩展:manifest 2和安全策略

update a chrome extension: manifest 2 and security policy

本文关键字:安全策略 manifest chrome 扩展 更新      更新时间:2023-09-26

我正在尝试更新使用背景页面的现有chrome扩展,我在这里发现了一些东西,在这里我没有错误,但弹出窗口从未显示。我甚至试图回到一些旧的chrome版本,让我尝试清单1代码,但时间没有增加。我很抱歉所有这些代码,但我不知道问题是从哪里来的。

Manifest.json

    {
"manifest_version": 2,
    "background": {
    "scripts": ["background.js"]
  },
   "browser_action": {
      "default_icon": "icon.png",
      "popup": "popup.html"
   },
   "description": "Count the time on Facebook",
   "name": "Compteur Facebook ",
   "permissions": [ "tabs" ],
   "version": "1.0"
}

popup.html

 <!doctype html>
    <html>
      <head>
      <script src="popup.js"></script>
      </head>
      <body>
     The amount of time you have spent on <span>Facebook</span> is: 
    <br /><br />
    <script>document.write(prettyDate(localStorage.getItem('facebookCounter')));</script>
    <br /><br />
    <div>
    Having a problem?<br />
    <button>Reset</button>
    </div>
    </body>
    </html>

popup.js

chrome.extension.getBackgroundPage();
    function resetCounter(){ localStorage.setItem('facebookCounter',0)}
function prettyDate(time){            
        var responce= "About " + Math.round(time) + " seconds"
        return responce
}
function main() {}
document.addEventListener('DOMContentLoaded', function () {
  document.querySelector('button').addEventListener('click', clickHandler);
  resetCounter();
  main();
});

background.js

var a = 0
  var x
  function timedCount()
  {
    a = parseInt(localStorage.getItem('facebookCounter'))
    chrome.tabs.getSelected(null, function(tab) 
    {
        theurl = tab.url.substr(0,24)
        if(theurl == "http://www.facebook.com/")
        {
            a=a+1 
            localStorage.setItem('facebookCounter',a)
        }
    });
    setTimeout("timedCount()",1000);  
  } 
  setTimeout("timedCount()",1000); 

要出现弹出窗口,您必须修改您的"manifest "。json",替换
"popup": "popup.html"

"default_popup": "popup.html"

您可以在这里找到更多关于从Manifest v1到Manifest v2的转换的信息。

另外,请注意,你可能需要做一些改变,使您的扩展更有效(例如,把你的背景页变成一个事件页,或捕获一些事件,而不是使用计时器触发每秒)。这个过渡指南可能是一个很好的开始