- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在构建一个 chrome 扩展程序,如果 url 与某些特定模式不匹配,我需要显示一些指示已禁用的图标,如果用户单击已禁用的图标并且没有显示弹出窗口,则需要提醒。图标是 chrome browserAction 图标。但是,如果用户单击指示已启用的图标,则应显示默认弹出窗口。
基本上,当页面 url 不匹配时,弹出窗口不应打开,并且应发出警报。
我目前在后台页面中使用它,但它看起来效率很低,大部分时间它都有效,但仅在页面重新加载后才显示警报:background.js
var alertError = function(arg){
alert('Something');
};
chrome.tabs.onActivated.addListener(function(info){
chrome.tabs.get(info.tabId, function(change){
if(change.url == undefined){
chrome.browserAction.setPopup({tabId: info.tabId, popup: ''});
chrome.browserAction.setIcon({path: '../icons/icon-disabled.png', tabId: info.tabId});
chrome.browserAction.onClicked.removeListener(alertError);
chrome.browserAction.onClicked.addListener(alertError);
console.log('undefined');
}
else if(change.url.match(/https:\/\/google\.com\/*/) == null){
chrome.browserAction.setPopup({tabId: info.tabId, popup: ''});
chrome.browserAction.setIcon({path: '../icons/icon-disabled.png', tabId: info.tabId});
chrome.browserAction.onClicked.removeListener(alertError);
chrome.browserAction.onClicked.addListener(alertError);
console.log('not matching');
}
else{
chrome.browserAction.setPopup({tabId: info.tabId, popup: '../html/popup.html'});
chrome.browserAction.setIcon({path: '../icons/icon.png', tabId: info.tabId});
console.log('matched');
}
});
});
chrome.tabs.onUpdated.addListener(function (tabId, change, tab){
if(change.url == undefined){
return;
}
else if(/https:\/\/google\.com\/*/) == null){
chrome.browserAction.setPopup({tabId: tabId, popup: ''});
chrome.browserAction.setIcon({path: '../icons/icon-disabled.png', tabId: tabId});
chrome.browserAction.onClicked.removeListener(alertError);
chrome.browserAction.onClicked.addListener(alertError);
console.log('not matching');
}
else{
chrome.browserAction.onClicked.removeListener(alertError);
chrome.browserAction.setPopup({tabId: tabId, popup: '../html/popup.html'});
chrome.browserAction.setIcon({path: '../icons/icon.png', tabId: tabId});
console.log('matched');
}
});
编辑
list 文件:
{
"manifest_version": 2,
"name": "Something",
"description": "Something",
"version": "2.5",
"permissions": [
"tabs",
"<all_urls>",
"storage"
],
"background": {
"scripts" : ["js/localstoragedb.min.js", "js/background.js"]
},
"icons":{
"16" : "icons/icon16.png",
"48" : "icons/icon48.png",
"128" : "icons/icon128.png"
},
"browser_action": {
"default_title" : "Title",
"default_icon" : "icons/icon.png"
},
"web_accessible_resources": ["js/inject.js"]
}
最佳答案
我想我找到了一个解决方案:
在 background.js 中:
var alertError = function(arg){
if(arg.url.match(/https:\/\/google\.com\/*/) == null){
alert('Something');
}
};
chrome.browserAction.onClicked.addListener(alertError);
chrome.tabs.onActivated.addListener(function(info){
chrome.tabs.get(info.tabId, function(change){
if(change.url == undefined){
chrome.browserAction.setPopup({tabId: info.tabId, popup: ''});
chrome.browserAction.setIcon({path: '../icons/icon-disabled.png', tabId: info.tabId});
console.log('undefined');
}
else if(change.url.match(/https:\/\/google\.com\/*/) == null){
chrome.browserAction.setPopup({tabId: info.tabId, popup: ''});
chrome.browserAction.setIcon({path: '../icons/icon-disabled.png', tabId: info.tabId});
console.log('not matching');
}
else{
chrome.browserAction.setPopup({tabId: info.tabId, popup: '../html/popup.html'});
chrome.browserAction.setIcon({path: '../icons/icon.png', tabId: info.tabId});
console.log('matched');
}
});
});
chrome.tabs.onUpdated.addListener(function (tabId, change, tab){
if(tab.url == undefined){
return;
}
else if(tab.url.match(/https:\/\/google\.com\/*/) == null){
chrome.browserAction.setPopup({tabId: tabId, popup: ''});
chrome.browserAction.setIcon({path: '../icons/icon-disabled.png', tabId: tabId});
console.log('not matching');
}
else{
chrome.browserAction.setPopup({tabId: tabId, popup: '../html/popup.html'});
chrome.browserAction.setIcon({path: '../icons/icon.png', tabId: tabId});
console.log('matched');
}
});
在 list 中:
"browser_action": {
"default_title" : "Title",
"default_icon" : "icons/icon.png",
"default_popup": "html/popup.html"
},
关于javascript - 如何根据页面 url 更改扩展图标并在不同图标中以不同方式提醒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24650610/
我有一个java脚本代码如下,它应该改变“a”标签的颜色和 提醒他们的内部 HTML: function change(n){ for(i=1;i aaaa | bb
经过多次研究,我遇到了这个问题: 用户使用 setExactAndAllowWhileIdle 为我的应用程序设置一个警报时,每 9 分钟只能触发一次。 这导致了另一个问题,因为我的闹钟正在重复。我的
我想创建一个应用程序来保存笔记、提醒、日常任务,并希望在锁屏 上显示这些,当用户点击笔记时,应用程序将打开并使用自定义 View 和背景在屏幕上显示任务。我已经对如何执行此操作进行了大量搜索,但没有成
我正在研究 Bixby 集成,我正在浏览 Bixby 文档,我有一些关于 Bixby 提醒的营销信息,但我正在寻找如何以编程方式或通过 API 创建提醒,但我没有找到任何文档中的信息。 最佳答案 这是
例如,我希望在我休息的日子里每天在特定 channel 中显示提醒。就像是: /remind #channel @me will be on PTO 1/1/2016 until 1/5/2016 然
已关闭。此问题不符合 Stack Overflow guidelines 。目前不接受答案。 这个问题似乎与 a specific programming problem, a software al
我正在开发一个集成了提醒功能的Android应用程序。如果手机保持开机状态,通知就会起作用,但是当我关闭或重新启动手机时,我会丢失所有警报。我知道这是Android功能来提高手机效率,但我不知道该怎么
我没能在 Outlook 警报显示之前以编程方式将其消除。 Private Sub Application_Reminder(ByVal Item As Object) Dim objRem
这个问题已经有答案了: 已关闭12 年前。 Possible Duplicate: JQuery to check for duplicate ids in a DOM 假设我有一个代码:
我正在构建一个网站,我想实现一个提醒功能,当人们有任何项目或事件到期时提醒他们,或者只是提醒他们他们可能设置的任何计时器。我知道如何使用 javascript 的计时器函数来完成此操作,但我希望它一直
我有一个带有“打开提示”按钮的模式: × Arquivo
“允许主页按钮取消警报。当警报可见时按主页退出应用程序。它也应该产生与点击取消按钮相同的效果——也就是说,警报被关闭而不执行任何操作。如果你的警报没有取消按钮,请考虑在按下主页按钮时运行的代码中实现取
我有一个构造函数,然后我用它来创建对象library_science1: function librarytech(humanity,food,wood,metal,wealth) { this.hu
我该怎么做,例如,我在 users.cshtml View 中创建一个用户,它验证 ActionResult Create(RegisterModel um) 如果一切正常,我想返回 users.cs
我熟悉使用 eventstore 搜索谓词,例如 predicateForIncompleteRemindersWithDueDateStarting:Ending:Calendars: 但我正在尝试
免责声明:这实际上不是编程问题,但我觉得 stackoverflow 上的观众比其他大多数问答网站更有可能找到答案。 乔尔,请原谅我盗用了你的问题。 Joel 不久前在播客上问过这个问题,但我认为它从
我想以编程方式在日历中添加事件,并且我已经成功完成了。但是当我调用日历 Intent 时,它将打开日历,其中包含事件详细信息。用户可以在保存之前修改该事件。 所以我希望该事件不可编辑。如果能自动添加就
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我可以提醒 setter 函数来处理 newValue 吗? 例如: var test:String{ willSet{ newValue = newValue+" Kitty
OAuth 对话框读写权限您的应用似乎同时请求读取和写入权限。相反,最初请求少量权限,并在用户决定共享时请求写入权限。 最佳答案 这似乎是 Facebook 开发人员的错误。 有人有asked the
我是一名优秀的程序员,十分优秀!