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