嗨 - 我不是一个学生或程序员的交易,但我正试图敲一个快速的原型来获得一个想法。我从其他StackOverflow问题拼凑了一些代码,我几乎得到了我需要的东西,但我遇到了一件事:扩展只运行一次,但不会再运行,直到我通过chrome刷新扩展://扩展。我猜这个程序的元素有一个错误,它听了一个新的URL,但我无法弄清楚如何保持该元素不断倾听。这段代码现在在background.js中运行,不过我也在background.html中尝试过。
基本上,我希望扩展程序在用户访问新页面时检查选项卡的URL(通过自己键入URL或点击一个),如果URL出现在插件的内部URL列表,弹出一个简短的通知。到目前为止我有这个:
// Called when the url of a tab changes.
// So we can notify users
var notification = webkitNotifications.createNotification(
'48.png',
'Alert!'
);
// Called when the url of a tab changes.
function checkForValidUrl(tab) {
// Compare with a the URL
if (tab.url.match(/google/)) {
//then
notification.show();
}
};
// Listen for any changes to the URL of any tab.
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab){
if(changeInfo.status == "loading") {
checkForValidUrl(tab);
}
});
chrome.tabs.onSelectionChanged.addListener(function(tabId, selectInfo){
chrome.tabs.getSelected(null, function(tab){
checkForValidUrl(tab);
});
});
答案 0 :(得分:1)
我修复了这个问题后,将它解决了一下 - 我真的没有词汇来解释我做了什么,但我想我会发布代码以防其他人后来遇到同样(简单)的问题。
function checkForValidUrl(tabId, changeInfo, tab) {
var notification = webkitNotifications.createNotification(
'48.png',
'Alert!',
'Watch out for your privacy!'
);
// Compare with the URL
if (tab.url.match(/google/)) {
//then
notification.show();
}
};
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab){
if(changeInfo.status == "loading") {
checkForValidUrl(tabId, changeInfo, tab);
}
});