【问题标题】:update a chrome extension: manifest 2 and security policy更新 chrome 扩展:清单 2 和安全策略
【发布时间】:2013-06-02 10:31:01
【问题描述】:

我正在尝试更新使用背景页面的现有 chrome 扩展,我发现了一些东西 herehere 我没有收到任何错误,但从未显示弹出窗口。 我什至试图回到一些旧的 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); 

【问题讨论】:

    标签: javascript google-chrome-extension manifest content-security-policy


    【解决方案1】:

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

    "default_popup": "popup.html"

    您可以找到有关从 Manifest v1 过渡到 Manifest v2 的更多信息here

    另外,请注意,您可能需要进行一些更改以使您的扩展程序更高效(例如,将您的背景页面变成一个事件页面,或者捕获一些事件而不是使用每秒触发的计时器)。 This transition guide 可能是一个不错的起点。

    【讨论】:

    • 另外,您必须从 popup.html 中删除执行 document.write 的内联脚本代码,并从 popup.js 实现类似的功能
    猜你喜欢
    • 2020-02-28
    • 2013-02-01
    • 2021-07-30
    • 1970-01-01
    • 2021-09-24
    • 2013-12-23
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多