您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
iciba翻译
当前为
// ==UserScript== // @name iciba划词翻译 // @namespace noe132.com // @author noe132 // @include http://* // @include https://* // @exclude http://www.iciba.com* // @grant GM_xmlhttpRequest // @grant GM_addStyle // @grant GM_getValue // @grant GM_setValue // @grant GM_registerMenuCommand // @icon http://tb.himg.baidu.com/sys/portrait/item/d4346e6f65313332ac06 // @version 2.11 // @description iciba翻译 // ==/UserScript== // beta version // last update : 2015/01/03 /* update INFO: update 2015/01/03 : 样式全加了 !important 提高优先级 update 2014/12/24 : 添加设置选项(可循仅当按住ctrl键显示翻译按钮) update 2014/12/20 : 修正语法错误。。。 update 2014/12/19 : 搜词BUG修复,修正点击定位~ update 2014/12/10 : 严格模式"use strict",提高性能 update 2014/12/4 : 贴吧图册预览修正 update 2014/11/16 : 更换mouseClick的触发条件为mouseup update 2014/11/14 : 添加输入框查词,修正定位不正确。 流程说明: 鼠标事件触发后,check for ctrlKey_actived then 显示按钮mouseClick(); 点击按钮后,showResultBox(); getData(); setData(); */ "use strict"; var auto_active = 1; //没用~ var ctrlKey_actived; GM_registerMenuCommand("iciba翻译设置", openSetting); function openSetting(){ ctrlKey_actived = confirm("按住ctrl键(当且仅当)开启翻译?")?1:0; GM_setValue("ctrlKey_actived",ctrlKey_actived); } // Ctrl键触发 if(GM_getValue("ctrlKey_actived") == undefined){ ctrlKey_actived = 0; }else{ ctrlKey_actived = parseInt(GM_getValue("ctrlKey_actived")); } GM_setValue("ctrlKey_actived",ctrlKey_actived); document.body.addEventListener("mouseup",mouseClick,false); //document.body.style.position = "relative"; var iciba_click_box = document.createElement("div"); iciba_click_box.id = "iciba_click_box"; iciba_click_box.style.display = "none"; iciba_click_box.style.position = "absolute"; iciba_click_box.addEventListener("click",showResultBox,false) document.body.appendChild(iciba_click_box); var iciba_wrap = document.createElement("div"); iciba_wrap.id = "iciba_wrap"; iciba_wrap.style.display = "none"; iciba_wrap.style.position = "absolute"; iciba_wrap.innerHTML = ' \ <div id="iciba_search_box"><input id="iciba_input" type="text" /><input id="iciba_searchbtn" type="button" /></div><div id="iciba_text_box"></div>'; document.body.appendChild(iciba_wrap); var iciba_text_box = document.getElementById("iciba_text_box"); var iciba_input = document.getElementById("iciba_input"); var iciba_searchbtn = document.getElementById("iciba_searchbtn"); iciba_input.addEventListener("keypress",searchFromInputBox,false); iciba_searchbtn.addEventListener("click",searchFromInputBox,false); GM_addStyle('#iciba_click_box{z-index:1000!important;overflow:hidden!important;width:20px!important;height:20px!important;border:1px solid #555!important;border-radius:100px!important;background:#ABD!important;box-shadow:0 0 3px #111!important;opacity:.7!important;-moz-transition:.05s!important}#iciba_click_box:hover{opacity:1!important}#iciba_click_box:active{border:1px solid #353535!important;background:#90a2c4!important;box-shadow:0 0 3px #222!important}#iciba_wrap{z-index:1000!important;width:auto!important;height:auto!important;max-width:360px!important;min-width:260px!important;border:1px solid gray!important;background:#EEE!important;box-shadow:0 0 3px #999!important}#iciba_search_box{display:block!important;margin:0!important;padding:0!important;width:100%!important;border-bottom:1px solid gray!important;font-size:0!important}#iciba_search_box>#iciba_input{display:inline-block!important;display:-moz-box!important;box-sizing:content-box!important;margin:0!important;padding:2px 7px 0 7px!important;width:-moz-calc(100% - 44px)!important;height:26px!important;border:0!important;vertical-align:middle!important;font-size:15px!important;line-height:28px!important;-moz-transition:.1s!important}#iciba_search_box>#iciba_input:hover,#iciba_search_box>#iciba_input:focus{box-shadow:0 0 3px #BBB inset!important}#iciba_search_box>#iciba_searchbtn{display:inline-block!important;box-sizing:content-box!important;margin:0!important;padding:0!important;width:29px!important;height:28px!important;border:0!important;border-left:1px solid gray!important;border-radius:0!important;background-color:#e5e5e5!important;background-image:url(data:image/png!important;background-repeat:no-repeat!important;vertical-align:middle!important;-moz-transition:.1s!important;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAEgAAABIAEbJaz4AAAAJdnBBZwAAABAAAAAQAFzGrcMAAADcSURBVCjPhdG9TgJhEIXh58M1EGEFjEohiUGk4f4vBaSy0UYRBFEIP8JaLEvWhOjbTc6bzMlMSPxNRICGpopgZejJJosTIRGCtjtLE1uxmrGeZSZEaGh5NzBH5Na9jp7ksMKNtQcL8O1R2bXYLBUKqBjv45QXJ86yoYBg96v4zr55JqzECjmhamedF4ZqWoe4runTJHcHzy60lb3aqmo6tVHJSoZEoKTjSoSdL5GShZ5ZdqhUPVcWrEzVdRXN9X3khTyXuooW+sm04BgjAyux+7TkMd4kWkaE/979AxXnQ1s0DN1UAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDEwLTAyLTExVDExOjUwOjA4LTA2OjAw1hBl+wAAACV0RVh0ZGF0ZTptb2RpZnkAMjAwNi0wNS0wNVQxMzoyMjo0MC0wNTowML/k/hoAAAAASUVORK5CYII=)!important;background-position:7px 7px!important}#iciba_search_box>#iciba_searchbtn:hover{background-color:#f0f0f0!important}#iciba_search_box>#iciba_searchbtn:active{background-color:#DDD!important;box-shadow:0 0 3px #999 inset!important}#iciba_text_box{margin:0!important;padding:7px 9px 9px 9px!important;color:black!important;font-size:13px!important}#iciba_text_box a{color:#35C!important}.icIBahyI-new_word{display:none!important}#iciba_text_box{text-align:left!important;font-size:14px!important;font-family:Arial,Helvetica,sans-serif!important}#iciba_text_box div,#iciba_text_box ul,#iciba_text_box li,#iciba_text_box p,#iciba_text_box form,#iciba_text_box input,#iciba_text_box label{margin:0!important;padding:0!important;font-size:14px!important}#iciba_text_box input,#iciba_text_box button,#iciba_text_box textarea{font-weight:inherit!important;font-style:inherit!important;font-size:inherit!important;font-family:Arial,Helvetica,sans-serif!important}#iciba_text_box{background:#fbfbfb!important;_width:278px!important;_overflow:hidden!important}#iciba_text_box ul,#iciba_text_box li{list-style:none!important}#iciba_text_box a{color:#666!important;text-decoration:none!important}#iciba_text_box a:hover{color:#4372b6!important;text-decoration:underline!important}#iciba_text_box a:focus{outline:0!important}#iciba_text_box img{border:0!important}#iciba_text_box strong{font-weight:100!important;font-family:"Segoe UI",Verdana,Lucida Sans Regular,Lucida Sans Unicode,Arial,sans-serif!important}#iciba_text_box .icIBahyI-bg_main{background:#fff!important}#iciba_text_box .icIBahyI-usually,#iciba_text_box .icIBahyI-prons,#iciba_text_box .icIBahyI-tab_list,#iciba_text_box .icIBahyI-group_inf{font-size:12px!important}#iciba_text_box .icIBahyI-fl,#iciba_text_box .icIBahyI-nav_list li,#iciba_text_box .icIBahyI-left_bg,#iciba_text_box .icIBahyI-usually label,#iciba_text_box .icIBahyI-usually span,#iciba_text_box .icIBahyI-tab_list li,#iciba_text_box .icIBahyI-group_inf li,#iciba_text_box .icIBahyI-eg,#iciba_text_box .icIBahyI-us{float:left!important}#iciba_text_box .icIBahyI-register,#iciba_text_box .icIBahyI-right_bg,#iciba_text_box .icIBahyI-up,#iciba_text_box .icIBahyI-down{float:right!important}#iciba_text_box .icIBahyI-register{padding-left:25px!important}#iciba_text_box a.icIBahyI-text_black,#iciba_text_box .icIBahyI-nav_list strong{color:#333!important}#iciba_text_box a{color:#236fd4!important;text-decoration:underline!important}#iciba_text_box a:hover{color:#236fd4!important}#iciba_text_box .icIBahyI-handwrite,#iciba_text_box .icIBahyI-handwrite_over,#iciba_text_box .icIBahyI-drop_down{position:absolute!important;width:16px!important;height:16px!important;cursor:pointer!important}#iciba_text_box .icIBahyI-handwrite{top:14px!important;right:130px!important;background-position:0 -70px!important}#iciba_text_box .icIBahyI-handwrite_over{top:14px!important;right:130px!important;background-position:-18px -70px!important}#iciba_text_box #icIBahyI-dict_main{padding:0!important;text-align:left!important}#iciba_text_box .icIBahyI-dictbar{display:block!important;padding:0 0 4px 0!important;height:auto!important}#iciba_text_box .icIBahyI-title{position:relative!important;padding:16px 17px 0 18px!important;color:#333!important;font-weight:bold!important;font-size:24px!important;font-family:arial,sans-serif!important;line-height:32px!important;word-break:break-all!important}#iciba_text_box .icIBahyI-prons{display:inline-block!important;padding:0!important;height:auto!important;white-space:nowrap!important;font-weight:700!important;word-break:break-all!important}#iciba_text_box .icIBahyI-dict_title{color:#333!important;font-weight:bold!important;font-family:arial,sans-serif!important}#iciba_text_box .icIBahyI-ico_sound{float:left!important;display:block!important;overflow:hidden!important;margin:1px 0 -2px 4px!important;width:16px!important;height:16px!important;background:url(data:image/png!important;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACK0lEQVQ4jZWTQUuUURSGn3Pu/e6opM5kjYRUk2mZOWC0KqL8AS1cBBUUOf9Af4LbIJRo0yJs0V4hWhTUuC+SAslSclxESMM06cw4OvN9t8VUSgrZ2b8Pz3sOR7z3nLr6ZFpEh1F9LKpjH2euF9nnKICoGb505QKp7tSIdW6579r0yP8BjGW9XAfbTk9vX7ytPT7Vf+Nptv/ms8F9AgxhJHwv1Vgt1mnv6CJ55MSQdU1zZ289nxi4/SL+rwqEHkQVL8J6tUYNS2dXN4lDyVFjg+X0nZd71to28IKoIEYRo3iFSm2L5tZ2jp1MxVva2qbSmWw2nckO7gKghnoEYhQ1AkbZioSNOnxbr/O1GBLvTHK85+iQi7m5dCY7kR55Fd9RQQkjwYtQ2vSUqp4QRQOLa7YYZyhWIkp1S+9AioOH46OIjABYABFDedOzthFhnSFwBusMNjAYq4g0dJuadLumGv4AUKFa86hRbNAIBzHbAAWKc0oyEVBZq/B5cZVqpTr+/tHlyR0GShAI9VAxgWKdwcUMsWZLR8JxIAaLC3mKhfKsj3zm3cOLud9LbBgg2EBRIoxRrFXaWgOSHY5Cocqn+R85H4Zjb+8Pzvx9Rvsrj7WChoILlK5kDB+FfJjPs1ljXNROvr57es//aAC8x1hIxAISccuXlTzlSjgrxmbe3DuT2yu4C9ASEyqVMksLpZwYOzb34Pwu3b1GATx+dmUpR361MO7D8Nx+wwA/Ad9dudwSn5Q6AAAAAElFTkSuQmCC)!important;-moz-transition:.1s!important}#iciba_text_box .icIBahyI-ico_sound:hover{opacity:.75!important}#iciba_text_box .icIBahyI-ico_sound:active{opacity:.9!important}#iciba_text_box .icIBahyI-eg,#iciba_text_box .icIBahyI-us,#iciba_text_box .icIBahyI-group_pos strong,#iciba_text_box .icIBahyI-group_inf li{padding-right:10px!important}#iciba_text_box .icIBahyI-eg,#iciba_text_box .icIBahyI-us{padding-top:2px!important;font-family:"lucida sans unicode",arial!important}#iciba_text_box .icIBahyI-new_word{float:left!important;padding-top:2px!important}#iciba_text_box .icIBahyI-new_word a{display:block!important;padding:3px 10px 0 20px!important;width:35px!important;height:17px!important;background-position:-274px 0!important;color:#999!important;font-weight:100!important;font-family:"瀹嬩綋"!important}#iciba_text_box .icIBahyI-new_word a.icIBahyI-new_word2{background-position:-274px -19px!important}#iciba_text_box .icIBahyI-usually,#iciba_text_box .icIBahyI-prons{color:#666!important}#iciba_text_box .icIBahyI-group_prons .icIBahyI-second{float:none!important;padding-top:0!important}#iciba_text_box .icIBahyI-group_prons .icIBahyI-second .icIBahyI-eg{height:24px!important}#iciba_text_box .icIBahyI-mb9 p{margin-bottom:9px!important}#iciba_text_box .icIBahyI-group_pos{clear:both!important;overflow:hidden!important;color:#232323!important;line-height:20px!important}#iciba_text_box .icIBahyI-group_pos p{clear:both!important}#iciba_text_box .icIBahyI-label_list{float:left!important;padding-bottom:9px!important;width:87%!important;text-align:left!important}#iciba_text_box .icIBahyI-cn .icIBahyI-group_pos{color:#333!important}#iciba_text_box .icIBahyI-group_pos strong{color:#8d8d8d!important}#iciba_text_box .icIBahyI-group_prons{clear:both!important;padding-top:7px!important}#iciba_text_box .icIBahyI-margin_top{padding-top:6px!important}#iciba_text_box .icIBahyI-part_list a,#iciba_text_box .icIBahyI-tab_list li a,#iciba_text_box .icIBahyI-new_word a,#iciba_text_box .icIBahyI-part_main h3 a{text-decoration:none!important}#iciba_text_box .icIBahyI-tab_list{overflow:hidden!important;padding:0!important;height:1px!important;border-bottom:1px solid #fff!important;background:#c8c8c8!important}#iciba_text_box .icIBahyI-title{padding:13px 10px 1px!important;font-size:14px!important;line-height:18px!important}#iciba_text_box .icIBahyI-prons{font-weight:100!important}#iciba_text_box .icIBahyI-group_pos{font-size:14px!important;line-height:20px!important}#iciba_text_box .icIBahyI-group_pos p{padding-bottom:9px!important}#iciba_text_box .icIBahyI-label_list{padding:0 0 9px 5px!important;width:80%!important}#iciba_text_box .icIBahyI-group_pos .icIBahyI-fl{color:#666!important}#iciba_text_box .icIBahyI-synon{color:#333!important;line-height:28px!important}#iciba_text_box .icIBahyI-suggest,#iciba_text_box .icIBahyI-suggest2{padding:0 0 3px 0!important;color:#333!important;word-wrap:break-word!important;font-size:14px!important;line-height:22px!important}#iciba_text_box .icIBahyI-suggest ul{padding:7px 0 4px!important;line-height:155%!important}#iciba_text_box .icIBahyI-suggest li{padding-left:14px!important;background-position:-134px -304px!important}#iciba_text_box .icIBahyI-suggest p{line-height:250%!important}#iciba_text_box .icIBahyI-suggest .icIBahyI-pr a{padding-right:3px!important}#iciba_text_box .icIBahyI-suggest p.icIBahyI-pr{margin-top:3px!important;line-height:18px!important}#iciba_text_box .icIBahyI-suggest .icIBahyI-pr a{display:inline-block!important;padding-right:10px!important}#iciba_text_box .icIBahyI-footer{padding:0!important;width:auto!important;color:#999!important;text-align:right!important;font-size:12px!important;line-height:18px!important}#iciba_text_box .icIBahyI-footer a{padding:0 3px 0 0!important;color:#236fd4!important;text-decoration:none!important;font-size:12px!important;line-height:18px!important}#iciba_text_box .icIBahyI-footer a:hover{color:#236fd4!important}#iciba_text_box .icIBahyI-text_blue{color:#236fd4!important}#iciba_text_box .icIBahyI-list li{padding:0 15px!important}#iciba_text_box .icIBahyI-li_dt,.icIBahyI-li_dd{display:inline!important;line-height:24px!important}#iciba_text_box .icIBahyI-li_dt{padding-right:5px!important;color:#232323!important}#iciba_text_box .icIBahyI-li_dd{color:#777!important}#ICIBA_TOO_LONG{padding-top:10px!important;padding-left:10px!important;font-size:12px!important}'); if(window.location.href.indexOf("http://tieba.baidu.com/photo/p?kw=") == 1){ GM_addStyle('.af_container{position:relative;}'); } function searchFromInputBox(e){ if(e.target == iciba_input){ if(e.keyCode != 13){ return; } } var keyword = iciba_input.value; changeData(keyword); } function mouseClick(e){ // ignore when click on iciba_click_box if(e.target == iciba_click_box){ return; } // ignore when click insideof iciba_wrap if(IsInsideOf(e,iciba_wrap)){ return; } // Ctrl键触发 if(ctrlKey_actived){ if(!(e.ctrlKey == true && e.shiftKey == false && e.altKey == false)){ iciba_click_box.style.display = "none"; iciba_wrap.style.display = "none"; return; } } // iciba_wrap displays if(iciba_wrap.style.display == "block"){ // Hide iciba_wrap iciba_wrap.style.display = "none"; } // check iciba_icon // 显示iciba_icon if(window.getSelection().toString().length >= 150){ return; } if(window.getSelection().toString().length != 0){ var mouseX = e.pageX; var mouseY = e.pageY; iciba_click_box.style.top = mouseY + 8 + "px"; iciba_click_box.style.left = mouseX + "px"; iciba_click_box.setAttribute("keyword",window.getSelection()); setTimeout(function(){iciba_click_box.style.display = "block";},50); return; } // 取消显示iciba_icon if(window.getSelection().toString().length == 0){ iciba_click_box.style.display = "none"; } return; } function showResultBox(e){ var word = iciba_click_box.getAttribute("keyword"); iciba_click_box.style.display = "none"; var bodyheight = document.body.clientHeight; var bodywidth = document.body.clientWidth; var htmlheight = document.documentElement.clientHeight; var htmlwidth = document.documentElement.clientWidth; var screenheight = window.innerHeight; var screenwidth = window.innerWidth; getData(word,e,bodyheight,bodywidth,screenheight,screenwidth,htmlheight,htmlwidth); } function IsInsideOf(e,target){ var e_target = e.target; while(e_target != target && e_target){ e_target = e_target.parentNode; } if(e_target == target){ return true; }else{ return false; } } function getData(keyword,e,bodyheight,bodywidth,screenheight,screenwidth,htmlheight,htmlwidth){ iciba_wrap.style.display = "block"; var body_style_position = document.defaultView.getComputedStyle(document.body)["position"]; var html_style_position = document.defaultView.getComputedStyle(document.documentElement)["position"]; if(body_style_position != "static"){ if(screenwidth - e.clientX < 300){ iciba_wrap.style.left = "auto"; iciba_wrap.style.right = bodywidth - e.pageX + "px"; }else{ iciba_wrap.style.left = e.pageX + "px"; iciba_wrap.style.right = "auto"; } if(screenheight - e.clientY < 200){ iciba_wrap.style.top = "auto"; iciba_wrap.style.bottom = bodyheight - e.pageY + "px"; }else{ iciba_wrap.style.top = e.pageY + "px"; iciba_wrap.style.bottom = "auto"; } }else if(html_style_position != "static"){ if(screenwidth - e.clientX < 300){ iciba_wrap.style.left = "auto"; iciba_wrap.style.right = htmlwidth - e.pageX + "px"; }else{ iciba_wrap.style.left = e.pageX + "px"; iciba_wrap.style.right = "auto"; } if(screenheight - e.clientY < 200){ iciba_wrap.style.top = "auto"; iciba_wrap.style.bottom = htmlheight - e.pageY + "px"; }else{ iciba_wrap.style.top = e.pageY + "px"; iciba_wrap.style.bottom = "auto"; } }else{ if(screenwidth - e.clientX < 300){ iciba_wrap.style.left = "auto"; iciba_wrap.style.right = screenwidth - e.pageX + "px"; }else{ iciba_wrap.style.left = e.pageX + "px"; iciba_wrap.style.right = "auto"; } if(screenheight - e.clientY < 200){ iciba_wrap.style.top = "auto"; iciba_wrap.style.bottom = screenheight - e.pageY + "px"; }else{ iciba_wrap.style.top = e.pageY + "px"; iciba_wrap.style.bottom = "auto"; } } iciba_text_box.innerHTML = "Loading......"; iciba_input.value = keyword; GM_xmlhttpRequest({ method:"GET", referer:"http://www.iciba.com/", url:"http://open.iciba.com/huaci/dict.php?word=" + keyword, onload:function(response){ var text = response.responseText.replace(/\\/g,""); text = text.match(/dict\.innerHTML=\'.*\'/) + ""; text = text.replace(/dict\.innerHTML='/g,""); text = text.replace(/icIBahyI-"ico_sound"/g,'"icIBahyI-ico_sound"'); text = text.replace(/div\>'/g,"div>"); text = text.replace(/\<([\u4E00-\u9FA5]{1,5})\>/g,"<$1>") text = text.replace(/\<>/g,""); text = text.replace(/hidefocus="[a-z]{4,5}"/g,""); //text = text.replace(/ title="点击发音"/g,""); //text = text.replace(/ title="真人发音"/g,""); setData(text); } }); } function setData(result){ iciba_text_box.innerHTML = result; var playbtn = document.querySelectorAll(".icIBahyI-ico_sound"); if(playbtn.length != 0){ for(var i = 0;i < playbtn.length;i++){ playbtn[i].setAttribute("mp3",playbtn[i].getAttribute("onclick").replace("asplay_hanci('","").replace("');","")); playbtn[i].removeAttribute("onclick"); playbtn[i].addEventListener("click",playSound,false); } } } function changeData(keyword){ iciba_text_box.innerHTML = "Loading......"; GM_xmlhttpRequest({ method:"GET", referer:"http://www.iciba.com/", url:"http://open.iciba.com/huaci/dict.php?word=" + keyword, onload:function(response){ var text = response.responseText.replace(/\\/g,""); text = text.match(/dict\.innerHTML=\'.*\'/) + ""; text = text.replace(/dict\.innerHTML='/g,""); text = text.replace(/icIBahyI-"ico_sound"/g,'"icIBahyI-ico_sound"'); text = text.replace(/div\>'/g,"div>"); text = text.replace(/\<([\u4E00-\u9FA5]{1,5})\>/g,"<$1>") text = text.replace(/\<>/g,""); text = text.replace(/hidefocus="[a-z]{4,5}"/g,""); //text = text.replace(/ title="点击发音"/g,""); //text = text.replace(/ title="真人发音"/g,""); setData(text); } }); } function playSound(e){ var audio = document.createElement('audio'); var source = document.createElement('source'); source.type = "audio/mpeg"; source.src = e.target.getAttribute("mp3"); source.autoplay = "autoplay"; source.controls = "controls"; audio.appendChild(source); audio.play(); }