javascript
  • jquery
  • shortcut
  • bookmarklet
  • google-translator-toolkit
  • 2016-12-24 120 views 1 likes 
    1

    目標是向Google的Google譯者工具包添加鍵盤快捷鍵。那裏的大多數功能都有鍵盤快捷鍵,但這兩個都不行。書籤模擬Google服務iframe中的按鈕點擊

    第一個函數稱爲合併關閉。當執行此小書籤時,它會正確啓動:

    javascript:document.evaluate("//div[(@id='gtc-merge-arent')]/div[(@class='modal-dialog 
    gtc-merge')]/div[(@class='modal-dialog-buttons')]/button[(text()='OK')]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, 
    null).singleNodeValue.click(); 
    

    「應用於所有」功能更爲棘手。通常,您必須點擊三次才能執行此功能:

    #1要點擊使重複對話框可見的按鈕並設置參數:要替換的內容。
    #2點擊「應用到所有」,並引發整個
    #3實際更換隱藏對話框元素。

    我不想混淆Google的內部代碼,所以通過鼠標進行正常點擊就是最好的選擇。

    #2,#3火很容易就夠了:同樣的書籤,用暫停:

    javascript:(function(pause) { 
    document.evaluate("//div[(@id='fnrDialogParent')]/div[(@class='modal-dialog gtc-rep-modal-dialog')]/div[(@class='modal-dialog-buttons')]/button[(text()='Apply to all')]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.click(); 
    setTimeout(() => document.evaluate("//div[(@id='fnrDialogParent')]/div[(@class='modal-dialog gtc-rep-modal-dialog')]/div[(@class='modal-dialog-buttons')]/button[(text()='Exit')]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.click(), pause) 
          })(400); 
    

    我不能模擬點擊該按鈕重名,這應該有兩個按鈕,彈出我需要點擊才能完成工作。該按鈕本身是一個與iframe中的img div。我想大多數的方法,我發現這裏的點擊模擬,最近的一次是this one,但它不工作都是一樣的(引用正確進行)

    var ifrm = document.querySelectorAll('iframe')[2];<br> 
    $(ifrm).contents().find('img.jfk-button-img.gtc-img-rep').click(); 
    

    (按鈕本身是有一個div 。IMG內取決於段是否在其他地方重複與否,按鈕或者是 - 啓用或-disabled下面是啓用按鈕的HTML代碼:

    <div role="button" class="goog-inline-block jfk-button jfk-button-standard jfk-button-narrow jfk-button-collapse-left jfk-button-collapse-right jfk-button-clear-outline" tabindex="0" id="goog-gtc-repbutton" aria-label="Repeated: 3" data-tooltip="Repeated: 3" style="user-select: none;"><img src="./images/cleardot.gif" class="jfk-button-img gtc-img-rep" style="width: 21px; height: 21px;"></div> 
    

    回答

    0
    javascript: (function() { 
        const a = f => new MouseEvent(f, { bubbles: !0 }), 
         b = f =>() => document.querySelector(f).click(), 
         c = f => `#fnrDialogParent .gtc-rep-modal-dialog .modal-dialog-buttons button[name=${f}]`, 
         d = { imgSel: (f =>() => { 
           const g = a('mousedown'), 
            h = a('mouseup'), 
            i = document.querySelector(f); 
           i.dispatchEvent(g), i.dispatchEvent(h) })('img.jfk-button-img.gtc-img-rep'), applyToAll: b(c('repDialogReplaceAll')), exit: b(c('repDialogExit')) }; 
        d.imgSel(), d.applyToAll(), d.exit() })(); 
    

    這是回答我的問題的書籤並做了3次點擊。This answer tipped me off

    +0

    從問題或回答中,我們不完全清楚問題是什麼以及如何解決問題。 –

    相關問題