Я пытаюсь создать расширение будильника / таймера.Никогда ранее не использовал расширения и сталкивался с этим сообщением об ошибке:
"Отказался от выполнения встроенного обработчика событий, поскольку он нарушает следующую директиву политики безопасности содержимого:" script-src 'self' https://apis.google.com". ЛибоКлючевое слово unsafe-inline, хэш ('sha256 -...') или одноразовый номер ('nonce -...') необходимы для включения встроенного выполнения. "
Похоже, что он ссылаетсяк событию 'onended' в моем коде background.js.
Я обнаружил, что это аналогичная проблема:
Как исправить ошибку вызова встроенного JavaScript-расширения Chrome?
Я не уверен, как заставить работать исправления, хотя из-за того, что я новичок.
Я пытался добавить это в свой файл manifest.json, но это не помоглочто-нибудь: "content_security_policy": "script-src 'self' https://apis.google.com; object-src 'self'"
Затем я прочитал кое-что из этого, но не уверен, как на самом деле получить хэш кода:https://www.w3.org/TR/2015/CR-CSP2-20150721/#script-src-hash-usage
Приведенная выше ссылка гласит:
"Вы можете получить дижест строки в командной строке просто через программу openssl "
Я не уверен, где / что программа openssl, хотя.Как мне получить этот хеш?
Как должен выглядеть текст в manifest.json "content_security_policy": для этой хеш-информации?
chrome.runtime.onMessage.addListener(function(response){
myInterval = setInterval(function(){
var audio = new Audio("Gentle-wake-alarm-clock.mp3");
audio.setAttribute("onended",
"function(){alert('your ' + response + ' second alert has ended')}");
audio.play();
clearInterval(myInterval);
}, response * 1000);
})
мой файл manifest.json:
{
"name": "timer",
"version": "1.0",
"description": "Build a timer!",
"manifest_version": 2,
"permissions": ["storage"],
"options_page": "options.html",
"browser_action": {
"default_popup": "timerpopup.html",
"default_icon": "green alarm.png"
},
"background": {
"scripts": ["background.js"],
"persistent": false
},
"content_security_policy":"script-src 'self' https://apis.google.com; object-src 'self'"
}