Как поймать автообновление GMail - PullRequest
3 голосов
/ 14 марта 2010

Я написал usercript , чтобы выделить текущую строку в GMail (обозначена стрелкой). К сожалению, подсветка останется только до автоматического обновления GMail Inbox, что происходит довольно часто. Есть ли способ поймать это событие, чтобы я мог повторно применить выделение? Я не хочу делать это по тайм-ауту. Есть другой пользовательский скрипт, который делает это, и он загружает процессор.

Ответы [ 4 ]

2 голосов
/ 22 марта 2010

Мне кажется, что вы захотите просмотреть этот документ, который является документацией для Gmail gmonkey API , который представляет собой API, который google предоставляет для сценариев greasemonkey.

На этой странице описывается пользовательский скрипт, который отслеживает изменения просмотра , и это должно быть очень похоже на то, что вам нужно.

Полагаю, вы захотите что-то вроде:

window.addEventListener('load', function() {
  if (unsafeWindow.gmonkey) {
    unsafeWindow.gmonkey.load('1.0', function(gmail) {
      function changedViewType() {
        // Threadlist
        if(gmail.getActiveViewType()== "tl"){
          // code to highlight the current row here...
        }
      }
      gmail.registerViewChangeCallback(changedViewType);
      changedViewType();
    });
  }
}, true);
1 голос
/ 14 марта 2010

Если вы добавите таймер и посмотрите, когда ваш элемент выделения исчезнет? или если родительский объект меняет свой адрес (с ===).

0 голосов
/ 30 октября 2015

Следующий код работает с текущим пользовательским интерфейсом gmail на сегодняшний день, кредиты идут на https://cleverinsert.com/, взятые из их плагина gmail . Обратный вызов срабатывает при каждом обновлении папки «Входящие». Вы должны создать MutationSummary после полной загрузки документа. Вы можете установить и отладить их плагин в Chrome, чтобы проверить его.

Вы должны включить mutation-summary.js

new MutationSummary({
  callback: render,
  rootNode: document.querySelector('.AO'),
  observeOwnChanges: false,
  oldPreviousSibling: true,
  queries: [
      { element: 'td.xW' }
  ]});

function render(a) {
  console.log("callback triggered");           
}
0 голосов
/ 20 сентября 2010

рассмотрим стиль пользователя CSS (http://userstyles.org/) вместо сценария пользователя. Вы можете использовать DOM-инспектор Firefox для просмотра элементов и классов HTMl в выбранной строке, и тогда будет довольно просто написать CSS-селектор, который выбирает только эту строку.

...