В Gmail, нажав на флажок, показанный ниже, вы выбираете все сообщения, и я делаю пользовательский скрипт (для личного использования, и он мне нужен для работы в Chrome), который выберет непрочитанноетолько сообщения (только первые 2 сообщения на скриншоте ниже непрочитаны) вместо поведения по умолчанию этого флажка.
Моя первая идея - смоделировать события кликаи хотя я мог получить доступ к «непрочитанному» пункту меню в порядке с помощью кода ...
var unread_menuitem = document.getElementById('canvas_frame').contentWindow.document.getElementById(':s2');
$(unread_menuitem).css({'border':'thin red solid'});
и отправить ему событие click, используя код ...
var clickEvent = document.createEvent('MouseEvents');
clickEvent.initEvent( 'click', true, true );
unread_menuitem.dispatchEvent(clickEvent); // Chrome's console returned 'true'
непрочитанные сообщения не выделяются.
Моя вторая идея заключалась в том, чтобы форсировать выбор, установив флажок $('#canvas_frame').contents().find('tr.zE input').prop('checked', true)
и применить стили CSS, к которым применяется Gmail.событие щелчка вручную, но хотя я смог сопоставить событие щелчка вручную как визуально, так и с точки зрения DOM (afaik) ...
Gmail говорит: «Нет разговоров»выбрано "при выполнении какого-либо действия, в этом случаеЯ сделал «Пометить как прочитанное».Я также хочу отметить, что ручное нажатие на флажки, которые были установлены в этом состоянии с использованием моего метода грубой силы, не сняло их, как вы ожидаете.Им нужно было одно дополнительное ручное нажатие, чтобы убрать галочку.
Обе мои идеи провалились, и я хочу знать, есть ли другие способы решения этой проблемы, или есть ли способыулучшить мои идеи выше, которые могут решить эту проблему.