2013-08-19 4 views
0

Это проверяет, является ли страница https и соответствует ли элемент localStorage true или false и отображает на ней уведомление. Код помещается в popup.js:Уведомление об увеличении Chrome только один раз?

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(); 
} 

Проблема заключается в том, что это работает только один раз, во всем мире. Никакая другая страница не обнаруживается, не оценивается и не отображается уведомление. Что я делаю не так?

У меня нет ошибок.

ответ

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(); 
} 
+0

Это было. Мне просто нужно добавить это, добавить подобное «else», а также определить уведомление за пределами функции как глобальную переменную, потому что она выбрала неопределенный, она не работает отлично. Спасибо. – user2651560

Смежные вопросы