这将验证页面是否为https以及localStorage项目的计算结果为true或false,并根据该项目显示通知。代码放在popup.js:
中chrome.tabs.query({
active: true,
lastFocusedWindow: true
}, function(array_of_Tabs) {
var tab = array_of_Tabs[0];
var url = tab.url;
if (url.indexOf('https:') === 0 && localStorage.getItem("secureRead").value !== true) {
chrome.extension.getBackgroundPage().showNotify();
}
});
实际的通知代码放在background.js文件中:
var notification = webkitNotifications.createNotification(
'icon48.png',
'Secure page detected.',
'Checking "Enable HTTPS reading" in the setting is required.'
);
function showNotify()
{
notification.show();
}
问题是这只能在全球范围内使用一次。然后,不会检测,评估其他页面,也不会显示任何通知。我做错了什么?
我也没有任何错误。
答案 0 :(得分:1)
首先,您应该知道当前的通知系统(即webkitNotifications.createNotification)已弃用,并已从Chrome中删除,至少在Windows和ChromeOS上已删除。有关详细信息,请参阅http://developer.chrome.com/extensions/desktop_notifications.html。
其次,如果用户关闭通知,则通知可能为空;我试试这个:
function showNotify()
{
if (notification == null)
{
notification = webkitNotifications.createNotification(
'icon48.png',
'Secure page detected.',
'Checking "Enable HTTPS reading" in the setting is required.'
);
}
notification.show();
}