Уведомление Chrome на рабочем столе для динамического обновления сайта, когда Chrome работает в фоновом режиме

1

Я создал расширение закладки для веб-сайта сообщества, на котором размещаются сообщения, мне нужно иметь уведомление о новых сообщениях на сайте сообщества. chrome работает на фоне, но никакие вкладки не будут открыты, если не будут уведомлены об уведомлении рабочего стола.

Идея - отправить сообщение с фоновой страницы на контент script для регулярного интервала и получать обновления в сообщении и отображать уведомление на рабочем столе, тем самым пользователь открывает обновление при просмотре уведомлений.

Query: Как получить доступ к DOM сайта (когда хром работает в фоновом режиме), скрывая процесс извлечения из глаз пользователя.

Спасибо!

ИЗМЕНИТЬ

var statone;
var xhr = new XMLHttpRequest();
xhr.open("GET", "https://www.dsswym.3ds.com/", true);
xhr.onreadystatechange = function() {
 if (xhr.readyState == 4 && xhr.status==200) {
    setTimeout(function(){ //wait for the webpage loading 
        statone = $('#widgetPanel-7qrSN8CAwqKk0DP2_GQK').text();
        console.log(statone);
        alert(statone); 
     }, 10000);
  }
}
xhr.send();

Я не могу получить текстовые значения над кодом выше, вместо этого поле предупреждения пусто. Исходный сайт не предоставляет файл xml или Json, просто мне нужно извлечь первый контент или обновление на сайте.

  • 0
    « Как получить доступ к DOM веб-сайта (когда Chrome работает в фоновом режиме) » - XMLHttpRequest ? Смотрите также developer.chrome.com/extensions/xhr.html
  • 0
    @apsillers: Спасибо! Я работаю над этим. Вернется на сомнения, если таковые имеются.
Показать ещё 1 комментарий
Теги:
google-chrome-extension

1 ответ

1
Лучший ответ

Вам нужно использовать ответ от XMLHttpRequest. Выполнение запроса XMLHttpRequest не загружает ресурс запроса на страницу.

В jQuery вы можете сделать это следующим образом:

$.get("https://www.dsswym.3ds.com/", function(data) {
        // load response text into a new page element
        var fakePage = document.createElement("html");
        fakePage.innerHTML = data;

        // find the desired element within the new page element
        var statone = $(fakePage).find('#widgetPanel-7qrSN8CAwqKk0DP2_GQK').text();
        console.log(statone);
    }
});

Здесь хранится результат извлечения Ajax в innerHTML нового элемента <html>, который обрабатывает текст, подлежащий анализу, в новую DOM. Затем мы используем метод jQuery .find, чтобы получить необходимый элемент из этого DOM.

  • 0
    Я получил содержимое страницы, так как страница управляется javascript (динамическая страница), я не могу получить жизненно важные элементы, то есть в элементе данных функции отсутствует несколько элементов. Любая идея, как получить полный элемент веб-страницы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню