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

    GoogleのGoogle Translator Toolkitにキーボードショートカットを追加することを目標にしています。ほとんどの機能にはキーボードショートカットがありますが、これらの2つの機能はありません。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(); 
    

    「すべてに適用」機能は難しいです。通常、この機能を実行するには、3回クリックする必要があります。

    #1 [繰り返し]ダイアログが表示され、パラメータを設定するボタンをクリックします。
    #2クリック「すべてに適用」とダイアログ要素を非表示に
    #3全体の実際の交換をトリガします。

    私はGoogleの内部コードを混乱させたくないので、マウスのような通常のクリックが最適です。簡単に十分な

    #2、#3火災:同じブックマークレット、一時停止と:私は2つのボタンでポップアップ表示することになっている繰返しボタン、上のクリックをシミュレートすることはできません

    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); 
    

    Iジョブを終了するにはクリックする必要があります。ボタン自体はiframe内のimgを持つdivです。私は方法のほとんどは、私がクリックシミュレーション、最新のthis oneであるため、ここで見つけてみましたが、それは(参照が正しく取られている)

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

    は(ボタン自体が持つdiv要素すべて同じ動作しません。 。。これは私の質問に答えるブックマークレットがある

    <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() })(); 
    

    :IMG内部セグメントは他の場所かどうか繰り返して、ボタンが-enabledか-disabledのいずれかであるかどうかに応じて、ここでは有効になってボタンのHTMLコードです3回のクリックを行います。This answer tipped me off

    +0

    質問またはこの回答から、問題が何であり、どのように修正したかは完全にはわかりません。 –

    関連する問題