0

我想更新現有的使用後臺頁面的Chrome擴展,我發現一些東西herehere我得到沒有錯誤,但彈出窗口從不顯示。 我甚至試圖回到一些舊的Chrome版本,以允許我嘗試清單1代碼,但時間不會增加。 我很抱歉所有這些代碼,但我不知道問題來自哪裏。更新鉻擴展名:清單2和安全策略

的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); 

回答

1

對於出現,你必須修改「的manifest.json」彈出,與
"default_popup": "popup.html"

您可以找到有關從清單V1過渡的詳細信息的體現V2 here更換
"popup": "popup.html"
。另外,請注意,您可能需要進行一些更改才能使您的擴展更高效(例如,將您的後臺頁面轉換爲活動頁面,或者捕獲一些事件,而不是每秒觸發一次定時器)。 This transition guide可能是一個很好的開始。

+0

此外,您必須從'popup.html'中刪除內聯腳本代碼,它執行'document.write',並實現類似於'popup.js'的功能。 – rsanchez