我是 JavaScript 和 Google Chrome 插件开发的新手。我正在尝试为它创建我的第一个扩展。我的目标是在维基百科页面上有一个页面操作,每次点击都会显示简单的 JS 警报。我的代码如下:
// manifest.json
{
"name": "My Plugin",
"version": "0.0.1",
"manifest_version": 2,
"description": "My first expirience in plugin development for Google Chrome browser",
"page_action": {
"default_icon": "icon.png",
"default_title": "Action Title"
},
"background": {
"scripts": ["background.js"]
},
"permissions": [
"tabs"
]
}
// background.js
// Listen for any changes to the URL of any tab.
chrome.tabs.onUpdated.addListener(checkForValidUrl);
// Called when the url of a tab changes.
function checkForValidUrl(tabId, changeInfo, tab) {
// Show action only for wikipedia pages
var regex = /wikipedia.org/gi;
if (tab.url.match(regex)) {
chrome.pageAction.show(tabId);
chrome.pageAction.onClicked.addListener(onClickListener);
}
};
function onClickListener(tab) {
alert('Clicked!!!');
}
问题是屏幕上多次显示警报。每次重新加载页面后,它会显示两倍。例如:
- 打开页面
- 点击我的插件图标
- 警报显示 2 次
- 转到下一页
- 点击图标
- 警报显示 4 次
等等...
但我希望每次点击只显示一次警报。我究竟做错了什么?