簡體   English   中英

使用javascript觸發gmail收件箱刷新

[英]trigger gmail inbox refresh with javascript

我正在嘗試模擬收件箱上方的刷新按鈕。 這是我當前(不起作用)的腳本:

var $elem = $('div.T-I.J-J5-Ji.nu.T-I-ax7.L3'); //getting the "refresh" button
if ($elem.length > 0) {
      var event = new MouseEvent('click', {
        'view': window,
        'bubbles': true,
        'cancelable': true
      });

    $elem[0].dispatchEvent(event);
}

我還嘗試在查詢對象上使用trigger('click')click()

我前段時間有同樣的問題。 由於某些原因,需要將按鈕對准焦點,只有在按下鍵盤鍵然后執行鍵盤鍵之后才發生事件。 遺憾的是,使用click()或任何其他JQuery事件觸發器不起作用。

我的解決方案使用純JS:

function refreshDomNow() {
    var refreshButtons = $( 'div.T-I.J-J5-Ji.nu.T-I-ax7.L3' ),
        buttonsFounds = refreshButtons.length,
        visibleButton = 0,
        refreshed = false;

    if ( buttonsFounds > 0 ) {              // There should be at least one of these buttons
        for ( var i = 0; i < buttonsFounds; i++ ) {
            var currentButton = $(refreshButtons[i]);
            if ( currentButton.is(':visible') ) {
                var rButton = $(rButtonClass)[i];
                visibleButton++;

                //Trigger mouse down event
                var mouseDown = document.createEvent('MouseEvents');
                mouseDown.initEvent( 'mousedown', true, false );
                rButton.dispatchEvent(mouseDown);

                //Trigger mouse up event
                var mouseUp = document.createEvent('MouseEvents');
                mouseUp.initEvent( 'mouseup', true, false );
                rButton.dispatchEvent(mouseUp);     // This opens the composer

                refreshed = true;
            }   // End of IF currentButton.is(':visible')
        }       // End of FOR loop
    }           // End of IF buttonsFounds > 0

    return refreshed;
}               // End of refreshDomNow();

即使這有效,我對此也不滿意。 主要是因為在閱讀郵件線程時刷新按鈕不可見。 我正在尋找前進的一步:我想知道如何觸發附加到刷新按鈕的函數(是的,trigger()不起作用),而無需單擊它。

有任何想法嗎? 有什么想法嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM