0

Я пытаюсь обновить существующее расширение chrome, которое использовало справочную страницу, я нашел что-то here и here Я не получаю ошибки, но всплывающее окно никогда не отображается. Я даже попытался вернуться к старой версии хрома, чтобы позволить мне попробовать код манифеста 1, но время не увеличивается. Прошу прощения за весь этот код, но я понятия не имею, откуда эта проблема.обновить расширение chrome: manifest 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", заменив
"popup": "popup.html"
с
"default_popup": "popup.html"

Вы можете найти более подробную информацию о переходе от Manifest v1 манифестировать v2 here ,

Также обратите внимание, что вам, вероятно, необходимо внести несколько изменений, чтобы сделать расширение более эффективным (например, превращение фоновой страницы в страницу события или захват некоторых событий вместо использования таймера, запускаемого каждую секунду). This transition guide может быть хорошим местом для начала.

+0

Кроме того, вам придется удалить встроенный код сценария из 'popup.html', который выполняет' document.write', и реализовать аналогичную функциональность из 'popup.js' – rsanchez

Смежные вопросы