如何捕获GMail自动刷新

时间:2010-03-14 01:03:52

标签: javascript jquery events gmail greasemonkey

我写了一个userscript来突出显示GMail中的当前行(由箭头指示)。不幸的是,亮点只会在GMail Inbox自动刷新之前保持不变,这种情况经常发生。有没有办法捕获该事件,以便重新应用突出显示?我不想在超时时这样做。有另一个用户脚本可以执行此操作并加载CPU。

4 个答案:

答案 0 :(得分:2)

在我看来,您想要查看this document which is documentation for the Gmail gmonkey API,这是Google提供的关于greasemonkey脚本的API。

This page describes a userscript which monitors view changes,这应该与您的需求非常相似。

我认为你会想要这样的东西:

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 :(得分:1)

如果添加计时器并查看高亮元素何时消失?或者如果父对象更改其地址(使用===)。

答案 2 :(得分:0)

考虑CSS用户类型(http://userstyles.org/)而不是用户脚本。您可以使用Firefox的DOM检查器查看所选行中的HTMl元素和类,然后编写一个只选择该行的CSS选择器应该非常简单。

答案 3 :(得分:0)

以下代码适用于截至今天的当前gmail用户界面,从https://cleverinsert.com/转到gmail plugin。每次刷新收件箱时都会触发回调。您必须在文档完全加载后创建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");           
}