Kartik Talwar的Gmail.js的“ view_thread”事件不起作用

时间:2018-07-16 13:03:08

标签: javascript jquery google-chrome-extension gmail

我正在开发chrome扩展程序。我当前在其中使用以下事件:

gmail.observe.on('view_thread', function(obj) {
  console.log('conversation thread opened', obj); // gmail.dom.thread object
});

以前运行正常。但是由于最近的某些原因,它停止了工作(可能是Gmail进行了一些UI更改)

以下是我使用的gmail.js参考:https://github.com/KartikTalwar/gmail.js

请帮助我纠正此问题。

1 个答案:

答案 0 :(得分:1)

我通过在Gmail.js中进行以下更改来修复了相同的错误

"view_thread": {
            class: ["Bu", "nH"], // class depends if is_preview_pane - Bu for preview pane, nH for standard view
            sub_selector: "div.if",
            handler: function (match, callback) {
                match = new api.dom.thread(match);
                callback(match);

                // look for any email elements in this thread that are currently displaying
                // and fire off any view_email sub_observers for each of them
                setTimeout(function () {
                    var email = match.dom("opened_email");
                    if (email.length) {
                        api.observe.trigger_dom("view_email", email, api.tracker.dom_observers.view_thread.sub_observers.view_email.handler);
                    }
                }, 500)
            },

如您所见,我添加了setTimeout方法并在500毫秒后调用“ view_email”方法。这里的实际问题是Gmail UI响应较晚,并且在呈现Gmail UI之前调用了view_email事件,这就是未调用事件的原因。