Greasy Fork

Translate

划词翻译调用“必应词典(必应翻译)、有道词典(有道翻译)、Google Translate(谷歌翻译)、Microsoft Translator(必应在线翻译)、金山词霸、海词词典、百度翻译、Oxford Learner's Dictionaries、Oxford Dictionaries、Merriam-Webster”网页翻译

目前为 2018-01-05 提交的版本。查看 最新版本

// ==UserScript==
// @name         Translate
// @namespace    http://tampermonkey.net/
// @version      1.8
// @description  划词翻译调用“必应词典(必应翻译)、有道词典(有道翻译)、Google Translate(谷歌翻译)、Microsoft Translator(必应在线翻译)、金山词霸、海词词典、百度翻译、Oxford Learner's Dictionaries、Oxford Dictionaries、Merriam-Webster”网页翻译
// @author       https://github.com/barrer
// @match        http://*/*
// @include      https://*/*
// @include      file:///*
// @run-at document-end
// @grant        GM_setValue
// @grant        GM_getValue
// ==/UserScript==

(function () {
    'use strict';

    // Your code here...
    var dataTransfer = {
        beforePopup: function (popup) {
            var text = window.getSelection().toString().trim();
            GM_setValue('barrer.translate.data.transfer.text', text);
            popup(text);
        },
        beforeCustom: function (custom) {
            var text = GM_getValue('barrer.translate.data.transfer.text');
            GM_setValue('barrer.translate.data.transfer.text', '');
            custom(text);
        }
    };
    var iconArray = [
        {
            name: 'Bing 词典',
            image: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAIAAABuYg/PAAACIElEQVR4Ae3XQ6AbURQA0Klte1vb7rY2d9+2bdu2bdu2bdt+vd9mZlLeOIPzDAyT5CDf89/EJNjJhG2Q4hrFhBgwURaCMTHWE2riYeXF/MFe57RlMTEWUMEmCjuuJj48MoIQ6h8aCiktZPRx3CnHCx5RWGd/H5oRN4xVMVFmMmHXjVT+MOw/dgMwEUboduTArhgoHVIUvKCnMOoJMcA5BGKX9BUPKArWdHYEleTTetmfUhPDRJhGVXFWYuqMl8ogJXb8Z3tfr1texg8Xy0NKQpgw4+hTnA1XTID2prHqCJoVDd2dVhlJb+yMdsvzQUaBxAmDchNnja0qQwtFRXurflL0MRUR8HBq+kIMlJ72aPF4ZqkDacIJk2DfLsMtHRlQ29mxIPbIXAs3DI6Oz3P7FfjpvB2qO9vJgW2R4mTydYbWQSQGNxJl+eJkltNYhxaKp7jU2QV9Behnd4xU/Irz0CJR29VxTkcOZnaSMJi1X9gZqcWFDY4ML8gMDA9pJkQcVxYZH8ZIxXoHB9Ei4V2Yc9NAaWrAXAvWBdhykdlQ+8HBZLwuSVldSSzNNPZ08QR6bJfmHs2QJDsJA7EE+2YpTr4gz6ae7vnM0MiIfnLMaVUxTJAeRiZcVsTscK8zamK6SdEDw8NTUkBx/j1YZo1WDwvOa/3x5SlUvk9Rbl5T/TdnC/gHqofIjQXcXYJ9qywvTFrwhfhdDBgSbL/Dluk/9hNhzb4y/RFwkQAAAABJRU5ErkJggg==',
            host: ['cn.bing.com'],
            popup: function (text) {
                popupCenter('https://cn.bing.com/dict/search?q=' + encodeURIComponent(text), null, 800, 600);
            },
            custom: function (text) {
            }
        },
        {
            name: '有道词典',
            image: 'data:image/png;base64,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',
            host: ['dict.youdao.com'],
            popup: function (text) {
                popupCenter('https://dict.youdao.com/w/eng/' + encodeURIComponent(text), null, 800, 600);
            },
            custom: function (text) {
            }
        },
        {
            name: 'Google Translate',
            image: 'data:image/png;base64,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',
            host: ['translate.google.com'],
            popup: function (text) {
                popupCenter('https://translate.google.com', null, 800, 600);
            },
            custom: function (text) {
                var source = document.querySelector('#source');
                source.value = text;
                tiggerEvent(source, 'input');
                tiggerEvent(source, 'keyup');
                document.querySelector('#gt-submit').click();
            }
        },
        {
            name: 'Microsoft Translator',
            image: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAIAAABuYg/PAAAEBklEQVR4AWIQqBGgGxpJlo1aJlgjyFvFy1bGxlPFQ3PLAKyVA3AgWxBFX6y1bdu2bdt2bNtr27Ztm7FtOzlV8/1LM9mpHj3d5m2Qmrk0m3BgQl2HuuCpG6nrmepVtKyoEKy8RXnk/+OcqGOio2KgUs2m2tvwt/4J/jVta049PLWzd2c9Mz0lYMBUsa6CsuXMy/1hinlZLOBXy1hr+dnl+pf169vVv/XrVk5+DpDFxcVzj8/FPiVg2ibaQ3YOcb7vrGakpm6ormGkUc26Wl37upglNoluvt3ehL/5FPUpryDPL87P65HX4J2DUUVhzFB/4PaB6Gt7x3bknpEXvlwISgyKz4gPTw4/8OZAE+cmLKjnWC8iJcL7sbflDcvxB8arGqgyqBCs/7b+gP3n2v96/8i9IzGRsOHYsJSwHc93xKTHMLXrxa5+2/rhA0JQWrDwlPDhe4YLfcEUHlMzVFt6Zml2fvbV71c/R39GXO66xKXHWd2y0jDWKC3YobeHxDpBgqA4sxj0PfZ7aHKo/hV9ntOPTBcrxaRDk1jZwauDrqmukpj983J74MYp2LTmwpqsvKw6tnW2PduWX5hPTpJQUoLEpMVMOjiJYpcBRki6+nR9H/7+L/kQ8eFz1Ocph6aoGah9i/lmedNSLBUOdx1QYuLBiWQsSnT06ghYS7eW1IxsBtE10SXHiBNC5PFhVeuqGIcD7e/Yrzm/htS4/O2yx0MPPAyhMG572xZg2QzC0VDRuP3j1l5Yu/j04i4+XTSNNRnUMtGacnjKs+Bnl75d6rutrzAQTV2akhdfor+YXTdTko0Ibjn89nBhUWFqdqoUM9f7rsRGKnkcBTah5bvX1l6Uf2v31rhBQpINRsB7belFGKpbV6eKr3y/Al4nr06EU+IzwLCDJzwp1uNqQeXRDRSyPsyEspUsK/EctnsYYOMOjAMAvEE7Bt36eev69+vXvl/7SxjEUCVguGj+ifkvQ19GpUYFxgdStoCN3jdaigp2kxf/qY05x+bApbLB4G+onf3U0LQj04buHOr7xJdfCFciQPDEBuH5yPOfYDOOzGCjPDBJcf94/xehL1QNVckUsVEM3z2c42A/gkR2EKFGTo2ehTwrLRhxpp6Ss5IvfL1AAQHGc8y+MRzXf3t/enQ7j3YbL2+MTotm5DdYhq9u/LzBfveH7otOLHK650TB8kvZ1bKtBfen5qQWFRWl56R/jPy4/uJ6+7v2zM46Oks2GAJNtHBrAaNzaGx67PUf12nEjwMf07cgCGbpMtjXwrUFmpH6CI1t3vF5pI9sMDoyJ5LHtexq0aOleiLjYZC/qpAFiDTCE+ezuLy5oqKW/FkyYAwBTYFz8Smu5odYjIJGW8Sjlo1aBgAognM9dsZHVAAAAABJRU5ErkJggg==',
            host: ['www.bing.com'],
            popup: function (text) {
                popupCenter('https://www.bing.com/translator', null, 800, 600);
            },
            custom: function (text) {
                var source = document.querySelector('#srcText');
                source.value = text;
                tiggerEvent(source, 'input');
                document.querySelector('#TranslateButton').click();
            }
        },
        {
            name: '金山词霸',
            image: 'data:image/png;base64,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',
            host: ['www.iciba.com'],
            popup: function (text) {
                popupCenter('http://www.iciba.com/' + encodeURIComponent(text), null, 800, 600);
            },
            custom: function (text) {
            }
        },
        {
            name: '海词词典',
            image: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAIAAABuYg/PAAAE50lEQVR4AZ2XRZTkNhPHS2C7cXjmgzAzMzPTJXwPM/Ntb6H7LZzcXzg5hZk5WebhmSaTSnFLr+vJ7u0J/K2Wy1S/EpXd7JzvtgBj4EjbShtDa1OTqfOm2RyDfqCN6LL5yYxEMCL8LRIZxeNBMJQWUyTQnqIuIOn8YBhZJN5zbEiafFJQvRrIdoVFG8nG/lu4BhgAIIuOVgKRCOTybJEW1T9CtlZahwozQzBGXdTzgAo1A+0xJsGdJsUg6aTUNPv6to7CmmBnTtQOrwUzjeZSFJeECIQoSRFIITlfVvhHO/5uqb2uHWXUwAnI7RuyJRAtPwvaCg+pBg/uPrF32QOA71W4HZIhX1Y9rx54Nb9bfCkBoKX0+/ON5zfOfr3YLHHOoUghMi+MkFWocJ+y//S+/7WkTJGGWGd1VnSIuoPdaCJEAKgKdv7k0LNH7HnnXv9TiLFCyI8k9saMu1GAA71j17G6YPC3JRlcv9vkk4fsJgDyPKSZI2lh0XKJEfep+MfUS+BIGHdetzA/K7xbBCtGc/bk8KqDdr3nmzWMA7PBU+V2IzUrUbh7yYO8ZpVeH+G6SK0Ok9/a8c/N8NdmuBgn0KeL/jt67a6TzSR124bGkAYDbrJArb2+kN9tJq9Pt8ucAQWrYUSwU0YqV/xvdI/hWtmTdPNt++z01ta5uTCWDLSzGPigtVqA0SWkYBGn4/SFLQuP/bzx/Y3bfp9fUr2nRj1x2U7j7VTZp6hwZ2oQCIFgbupEDfaSLaAF6Jpg37XiN+Zb083WN9vnQqXA6Lz/jpc4U6hd8UKD6MD4t6UrdCZVIf8FDN6fbzY1Q8Rf55YS1ACwT73838BLlXId8wLGhK+VWUCRQlsydFbBgDzLtV5I0tWdeKwUAOhNjSYAVASfKnmJDQzpzh0pQdWJk3aS2tJJkhRVf56lViLiQqKqnqz5fqpw2czSsuDmMvFyMKRpkypsJQmVZgZT2PficJCoa1JUPFmRsup7Yao0QDb7GWhX0vp3J7Rdao04CVGDUcJZBrPXCy9FyrCHjNR8IZRZM4KxmTDe3Ap5LiFnMCy+c6ELU804iRxYYrvRIUIPmbXg6LH68ZMjwFjJwEpCfDs9v60deowZ/wTr+yzRphuzoSJY2msZ9sKi6FpJOiTlY4fuWZHCznpmyofTC2GaetLxb2GFb4esxEotRzHBfM6yXs2G3WcMqFNQM4CDRqqrDt/7iNG6zZ9WIerXNk5nN2MvPIIhjZmVUljz5e4jQ6mTha/k3slRat3ZOwPODxiunjo1moUCeb20evMvi42aFIX3d3HMsn2KaiQI9hkfAUf7Oocra02z88T3f5Q4p3EFGjOXTUJE+Feaj5MbP/h2rhOVpeiDgYHl54htK/xzrW60b/7w+69nl6oZCTUQyrqnMcsvHGT/kNVW+MrqzU99v3o6jKqSu1+u4IybLC5Ss4uUaqRqZQBq3UjSdY3OB9vnsrn388JywHlFWBIx3E2zw976svCBh92ZxmqSuxH0/4FQZpEtxUmslM+5xxkQZhDskDc/J1dUocYUdYFU/JMCmmngkGkwgzZzjR38xmdQaFoxWxIhdym/hlZAUjiaa9QDcnn+cIBgYE0kSrnAHXe4Ao9s2AEYiEAUsigFAgClq5U7zViFTsv3XmFzz/dE6WowY5B3wvdjbEUY0p+dYhsS7DTVdQAAAABJRU5ErkJggg==',
            host: ['dict.cn', 'hanyu.dict.cn', 'abbr.dict.cn', 'ename.dict.cn'],
            popup: function (text) {
                popupCenter('http://dict.cn/' + encodeURIComponent(text), null, 800, 600);
            },
            custom: function (text) {
            }
        },
        {
            name: '百度翻译',
            image: 'data:image/png;base64,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',
            host: ['fanyi.baidu.com'],
            popup: function (text) {
                popupCenter('https://fanyi.baidu.com', null, 1024, 600);
            },
            custom: function (text) {
                var source = document.querySelector('#baidu_translate_input');
                source.value = text;
                tiggerEvent(source, 'input');
                document.querySelector('#translate-button').click();
            }
        },
        {
            name: 'Oxford Learner\'s Dictionaries',
            image: 'data:image/png;base64,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',
            host: ['www.oxfordlearnersdictionaries.com'],
            popup: function (text) {
                popupCenter('https://www.oxfordlearnersdictionaries.com/definition/english', null, 800, 600);
            },
            custom: function (text) {
                document.querySelector('.searchfield_input').value = text;
                document.querySelector('#search-btn input').click();
            }
        },
        {
            name: 'Oxford Dictionaries',
            image: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAE90lEQVR4Aa3XA5AjWxgF4LO2nm3btm2z8Gyvbdu27UGsznhtc7CINbnvrFKVurcnvZiq748aZy4TnPbfgJUN4Yi8ilxfTzLTLvJRkMppNU2HKfQjZm69FX/8XY1gGIsxvZbeiKVl7WAN5fGGARIZJGAO7EaxeJJgGEvVZhReB02MhjNxhDfQD6DkF8iPv0cwjEWfS3wJW3iP0QDqQLG3CYaxyCZoNeEWPWCSW+ScBGo3pCZ6z7+UIJHemOKpAa8YmfFm5qCAszIJTZTSNrjFZj7ugkcEYQ1nCDSuBtaJyciKPktII72RLzoj56h+EAuDaMKCnIrmGLjoKfzc8wr83LEpPm3eCL/0vgAtRt2GeTs/grtyDEMewCbxAUGiCRsskf3wxG4hpKS9cCc/hMlfqReGn7uQVfEaPv6tGiGjlmOvwbD5lxMkmlhx/JqOuBvT1zQgHJd6sqLsSjb1bmUQEzkTwzFwZUPCuZAKxN5AvmhJOC71JE8MUobhCfCKLoRzKRWIOHmOwnH0ZgKOlxnrr4ItUi6HIS2+GBPyqhPOoVSgFGdsEAEsYJh/1V0VKEXOkWsJVfq2eQP81bcpnnynJsEIKZDJX4plRy4HlsTrIsvnUAbSRDeC0r9Dq2PBjvfgiM2BR2yAV+zgMuBB1pHOGJh7E6EqUiCC2f8Z+OQZ8smt4/fBHrqRIJm1vhEDzGbLHl9r0i8aODYby6El3yLoUwQy+UaDT9qTkDjidozVqhEk+WJ4xoXTEjoCV/Q+gpIiEOWDZblOdw0mSHJ9D7AVYoa2DmflPIKSOlApWDYpukvAHP2JIMkTHQ2FIXbpEczfei1Bog4UBUuZMpA9/gFB4hXzDQfiddj1LxMk6kCVYDlMQuIR7xIkmlhmOFAOFYm3CRKPyFKckwSLervIE18SJEVilOFAllAMK/Y8SEgzraQGbFGX8lsmi6beSEV7gsQqPoXJYCBHZDWWbK1PSDNnY1PYo9sU5/gYyD9SHahyLkEy2NUEzsQaQ4E08RNBsvTAvbAEo4pztoD9/AWfxKUPraFtWF7ahCDxiqc5g5RjL7U4esRktF9WiyBxi990zl0KmENXspW2KWeIJ/IhQWnFwUeRJ5by4mFYIwI2shO3EI6P9ug8sy5BMr64Lhwxr06gFmABsg6PYQD5AHvMgTFFNQi6Ok67F7O3fImZG7/DxE1voPmACwl6GPwd1b0oAUv0IbAA8/c+xz5N6sy2XwnnxPTixnDE85X3sUetGFlYEyxA19k14RZ2nV8OfhSJRwhnzZ2cqLuA2iMfEsBClC/e1P0+bQ3vwOL9TxHOyL9Da8Er+uvveYksTF1diwCwpLjFGP1FLuyDh9O41/zaBMPGeG+HJpboby+BAByJewig4yVlbEEzps3TPZkYyoFlB79AtwVXEJS+blEPo5yPwCt687oVVV7PK34lpLCkcwVug41dVPWWIOBKlnIWZsMaHYypa9tgtLM57OGusEamMnQJHHFpbZPki26ENCwya+xettQm5BzNvJsTuAYxQOq1oV+9+WIAQcKiNrHgSuRLO/LZs0V97IEfCEos+jpMrgOPaMHWKtf5z42zhgW8wszx9whBF0tmo13Xw5nsCndyOzh+jAc5emy1D8MpVmDh7vfwbeeahCqxGNdq3AXcIj7iqj6WNyygUopQAkQx8tN2Wg5TuB2GWe4nGPU/ky2CwRJsWrQAAAAASUVORK5CYII=',
            host: ['en.oxforddictionaries.com'],
            popup: function (text) {
                popupCenter('https://en.oxforddictionaries.com', null, 800, 600);
            },
            custom: function (text) {
                document.querySelector('#query').value = text;
                document.querySelector('button[data-value="Launch search"]').click();
            }
        },
        {
            name: 'Merriam-Webster',
            image: 'data:image/png;base64,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',
            host: ['www.merriam-webster.com'],
            popup: function (text) {
                popupCenter('https://www.merriam-webster.com', null, 800, 600);
            },
            custom: function (text) {
                document.querySelector('#s-term').value = text;
                document.querySelector('.s-frm').submit();
            }
        }
    ], hostCustomMap = {};
    iconArray.forEach(function (obj) {
        obj.host.forEach(function (host) {// 赋值DOM加载后的自定义方法Map
            hostCustomMap[host] = obj.custom;
        });
    });
    var text = GM_getValue('barrer.translate.data.transfer.text');
    log('barrer.translate.data.transfer.text: ' + text);
    if (text && window.location.host in hostCustomMap) {
        dataTransfer.beforeCustom(hostCustomMap[window.location.host]);
    }
    if (window.location.host in hostCustomMap) {
        document.onkeydown = escExit;
    }

    log('url: ' + window.location.href);
    // 翻译图标
    var icon = document.createElement('div');
    iconArray.forEach(function (obj) {
        var img = document.createElement('img');
        img.setAttribute('src', obj.image);
        img.setAttribute('alt', obj.name);
        img.setAttribute('title', obj.name);
        img.addEventListener('click', function () {
            dataTransfer.beforePopup(obj.popup);
        });
        img.setAttribute('style', '' +
            'cursor:pointer!important;' +
            'width:18px!important;' +
            'height:18px!important;' +
            'background-color:rgba(255,255,255,0.80)!important;' +
            '');
        icon.appendChild(img);
    });
    icon.setAttribute('style', '' +
        'display:none!important;' +
        'position:absolute!important;' +
        'padding:0!important;' +
        'margin:0!important;' +
        'font-size:13px!important;' +
        'text-align:left!important;' +
        'z-index:2147483647!important;' +
        '');
    // 添加翻译图标到 DOM
    document.documentElement.appendChild(icon);
    // 鼠标事件:防止选中的文本消失
    document.addEventListener('mousedown', function (e) {
        if (e.target == icon || (e.target.parentNode && e.target.parentNode == icon)) {// 点击了翻译图标
            e.preventDefault();
        }
    });
    // 选中变化事件:当点击已经选中的文本的时候,隐藏翻译图标和翻译面板(此时浏览器动作是:选中的文本已经取消选中了)
    document.addEventListener("selectionchange", function () {
        log('selectionchange:' + window.getSelection().toString());
        if (!window.getSelection().toString().trim()) {
            icon.style.display = 'none';
        }
    });
    // 鼠标事件:防止选中的文本消失;显示、隐藏翻译图标
    document.addEventListener('mouseup', function (e) {
        if (e.target == icon || (e.target.parentNode && e.target.parentNode == icon)) {// 点击了翻译图标
            e.preventDefault();
            return;
        }
        var text = window.getSelection().toString().trim();
        log('click text:' + text);
        log(e);
        if (text && icon.style.display == 'none') {
            log('show icon');
            log(text + ' | ' + e.pageX + ' | ' + e.pageY);
            icon.style.top = e.pageY + 10 + 'px';
            icon.style.left = e.pageX + 10 + 'px';
            icon.style.display = 'block';
        } else if (!text) {
            log('hide icon');
            icon.style.display = 'none';
        }
    });

    /**日志输出*/
    function log() {
        var debug = false;
        if (!debug)
            return;
        if (arguments) {
            for (var i = 0; i < arguments.length; i++) {
                console.log(arguments[i]);
            }
        }
    }

    /**Esc键关闭窗口*/
    function escExit(e) {
        e = e || window.event;
        var isEscape = false;
        if ("key" in e)
            isEscape = (e.key == "Escape" || e.key == "Esc");
        else
            isEscape = (e.keyCode == 27);
        if (isEscape)
            window.close();
    }

    /**触发事件*/
    function tiggerEvent(el, type) {
        if ('createEvent' in document) {// modern browsers, IE9+
            var e = document.createEvent('HTMLEvents');
            e.initEvent(type, false, true);
            el.dispatchEvent(e);
        } else {// IE 8
            var e = document.createEventObject();
            e.eventType = type;
            el.fireEvent('on' + e.eventType, e);
        }
    }

    /**弹出居中窗口*/
    function popupCenter(url, title, w, h) {
        var x = screen.width / 2 - w / 2;
        var y = screen.height / 2 - h / 2;
        var win = window.open(url, title, 'scrollbars=yes, width=' + w + ', height=' + h + ', top=' + y + ', left=' + x);
        if (window.focus) {
            win.focus();
        }
        return win;
    }
})();