javascript
  • jquery
  • shortcut
  • bookmarklet
  • google-translator-toolkit
  • 2016-12-24 118 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

    从问题或回答中,我们不完全清楚问题是什么以及如何解决问题。 –

    相关问题