2017-02-27 15 views
0

アドオンを書くのが初めてです。私は、ボタンを押してからX分後に実行する関数を取得しようとしています。私はに従っており、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を使用することも、別のバックグラウンドスクリプトにメッセージを送信してアラームを処理することもできます。

関連する問題