2017-02-27 8 views
0

새로운 기능 추가되었습니다. 버튼을 누른 후 X 분 후에 실행하는 함수를 얻으려고합니다. 나는 this MDN reference을 따르고 있으며 this example addon과 비교하고 있지만 내 실수는 볼 수 없습니다.Webextension Firefox 경고가 실행되지 않음

은 지금까지 나는처럼 보이는 example.js 있습니다

var ok = document.createElement('button'); 
var okText = document.createTextNode("OK"); 
ok.appendChild(okText); 
ok.onclick = startTimer; 
document.body.appendChild(ok)   

function startTimer(event) { 
    event.preventDefault(); 
    console.log('click!') 
    browser.alarms.clearAll(); 
    browser.alarms.create("Remind", {delayInMinutes: 1}); 
    return false;   
}       

browser.alarms.onAlarm.addListener(ring);                                               

function ring(alarmInfo) { 
    console.log("RING!"); 
} 

지금까지 나는 로그에 "클릭"통지하지만, 얻을 "RING을!" 결코 일어나지 않을 것입니다. 1 분 후에 나타납니다. 의견에 따라


일부 더 많은 정보 : 은 내가 애드온을 작성한 및 부가 기능의 디렉토리에 web-ext run을 실행하여 실행하고 있습니다. manifest.json은 다음과 같습니다

{ 
"manifest_version": 2, 
"name": "Example", 
"version": "0.1", 
"description": "Example", 
"icons": { 
"48": "icons/example-48.png", 
"96": "icons/example-96.png" }, 
"content_scripts": [ 
    { 
    "matches": ["*://*.google.com/*"], 
    "js": ["example.js"], 
    "css": ["example.css"] 
    } ], 
"permissions": ["alarms"], 
    "run_at": "document_start" 
} 

브라우저 콘솔 내가 (여기 google.com을)에있어 사이트에서 출력 한 무리를 보여주고 example.js의 유일한 출력은 문제가 있다는 것입니다 click! example.js:57:2

+0

주제가 될 질문을 작성하십시오. 문제가 중복되는 [mcve]를 포함하십시오. Chrome 확장 또는 Firefox WebExtensions의 경우 일반적으로 * manifest.json * 및 백그라운드, 콘텐츠 및/또는 팝업 스크립트/HTML 중 일부를 포함해야합니다. (1) 원하는 동작, (2) 특정 문제 또는 오류 및 (3) 코드를 재현하는 데 필요한 최단 코드 * 디버그 도움말을 찾는 질문 ("이 코드가 원하는 방식으로 작동하지 않는 이유는 무엇입니까?") 질문 자체에. 또한 [여기에 어떤 주제를 물어볼 수 있습니까?] (http://stackoverflow.com/help/on-topic) 및 [ask]를 참조하십시오. – Makyen

+0

[브라우저 콘솔] (https://developer.mozilla.org/en/US/docs/Tools/Browser_Console) (Ctrl-Shift-J 또는 Cmd-Shift-J on)에 * 정확하게 * 표시되었습니다. OSX)를 설치하고 사용하려고 할 때? – Makyen

답변

1

입니다 콘텐츠 스크립트는 백그라운드 스크립트처럼 많은 API에 액세스 할 수 없습니다 (https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts 참조). 특히 그들은 alarm API에 액세스 할 수 없습니다.

그러나 그들은 setTimeout 또는 setDelay을 사용하거나 별도의 백그라운드 스크립트에 메시지를 보내어 경보를 처리 할 수 ​​있습니다.