Background Page
拡張機能がアンインストールされるか無効になるまで存続するため、バッジテキストは大きくなっています。
だからあなたのコード
window.setInterval(function() {
chrome.browserAction.setBadgeText({text:String(i)});
i++;
}, 4000);
成長を続けるためにバッジを保持します。
また、 2回目chrome.browserAction.onClicked.addListener(updateIcon);
は動作しません!
何を止めたいですか?
PS:あなたは2つの相反する機能を(browserAction.onClicked
そしてbrowserAction.setPopup
一緒に)使用しています。
編集1
作業バージョン
マニフェスト.json
登録されたバックグラウンドページとブラウザアクション
{
"name": "Bagde",
"description": "http://stackoverflow.com/questions/14436053/chrome-extension-onclick-with-popup",
"version": "1",
"manifest_version": 2,
"background": {
"scripts": [
"background.js"
]
},
"browser_action": {
"default_title": "Hi",
"default_popup": "popup.html"
}
}
background.js
コードを使用して、競合するbrowserAction.onClicked
イベントを排除しました
var i = 1;
function updateIcon() {
i = 1;
chrome.browserAction.setBadgeText({
text: ''
});
chrome.browserAction.setPopup({
popup: "popup.html"
});
}
chrome.browserAction.setBadgeBackgroundColor({
color: [200, 0, 0, 100]
});
window.setInterval(function () {
chrome.browserAction.setBadgeText({
text: String(i)
});
i++;
}, 4000);
popup.html
popup.js
CSPに準拠するために使用されるいくつかの些細なページ。
<html>
<head>
<script src="popup.js"></script>
</head>
<body>
<p>Some Content ..</p>
</body>
</html>
popup.js
背景ページ機能が呼び出されるため、アイコンがクリックされるたびにカウンターが開始されます
document.addEventListener("DOMContentLoaded", function () {
//Get Reference to Functions
backGround = chrome.extension.getBackgroundPage();
//Call Function
backGround.updateIcon();
});