// ==UserScript== // @name dict.cn // @namespace https://dict.cn/ // @version 0.1 // @description englist dictionary // @author dict.cn // @match *://*/* // @grant none // @downloadURL https://update.greasyfork.icu/scripts/371611/dictcn.user.js // @updateURL https://update.greasyfork.icu/scripts/371611/dictcn.meta.js // ==/UserScript== (function (h, n) { var script_ = document.createElement('script'); script_.type = 'text/javaScript'; script_.src = 'https://i1.haidii.com/v/1493890502/i1/js/jquery-1.8.0.min.js'; document.getElementsByTagName('head')[0].appendChild(script_); var t = "3.1"; if (h.dictHc) { return } var U = h.dictHc = {}; var c = "" + h.location.host; var am = h.document, aa = am.documentElement; var ap = [], e = false; var au = {}, m = document.createElement("div"), G; m.style.display = "none"; m.innerHTML = "a"; G = m.getElementsByTagName("a")[0]; au = { style: /red/.test(G.getAttribute("style")), hrefNormalized: G.getAttribute("href") === "/a" }; var ao = { "for": "htmlFor", "class": "className", readonly: "readOnly", maxlength: "maxLength", cellspacing: "cellSpacing", rowspan: "rowSpan", colspan: "colSpan", tabindex: "tabIndex", usemap: "useMap", frameborder: "frameBorder" }; var M = /^(?:href|src|style)$/; var al = function (a) { return new al.fn.init(a) }; al.fn = al.prototype = { init: function (a) { var aD = this; aD.dom = (typeof a === "string") ? am.getElementById(a) : w(a); return aD }, attr: function (a, aE) { var aI = this; if (typeof a === "object") { for (var aH in a) { aI.attr(aH, a[aH]) } return aI } a = ao[a] || a; var aG = aI.dom, aF = aE !== n, aD = M.test(a); if ((a in aG || aG[a] !== n) && !aD) { if (aF) { aG[a] = aE } else { return aG[a] } } else { if (!au.style && a === "style") { if (aF) { aG.style.cssText = "" + aE } else { return aG.style.cssText } } else { if (aF) { aG.setAttribute(a, "" + aE) } else { return !au.hrefNormalized && aD ? aG.getAttribute(a, 2) : aG.getAttribute(a) } } } return aI }, css: function (a, aE) { var aG = this; if (typeof a === "object") { for (var aF in a) { aG.css(aF, a[aF]) } return aG } var aD = aG.dom.style; a = H(a); if (aE !== n) { aD[a] = aE } else { return aD[a] } return aG }, show: function () { return this.css({ display: "block" }) }, hide: function () { return this.css({ display: "none" }) }, html: function (aD) { var aE = this, a = aE.dom; if (aD !== n) { a.innerHTML = ""; a.innerHTML = aD } else { return a.innerHTML } return aE }, text: function (aD) { var aE = this, a = aE.dom; if (aD !== n) { aE.html("").append(am.createTextNode(aD)) } else { return al.text([a]) } return aE }, offset: function () { var aD = this.dom.getBoundingClientRect(); var a = am.body, aH, aG, aE, aF; aH = aa.clientTop || a.clientTop || 0; aG = aa.clientLeft || a.clientLeft || 0; aE = h.pageYOffset || aa.scrollTop || a.scrollTop; aF = h.pageXOffset || aa.scrollLeft || a.scrollLeft; return { left: aD.left + aF - aG, top: aD.top + aE - aH } }, bind: function (a, aD) { var aG = this, aE = aG.dom, aF = {}; if (typeof a === "object") { aF = a } else { aF[a] = aD } for (a in aF) { al.bindEvent(aE, a, aF[a]) } return aG }, append: function (a) { var aD = this; aD.dom.appendChild(w(a)); return aD }, appendTo: function (a) { var aD = this; al(a).append(aD.dom); return aD }, contains: function (a) { return al.contains(this.dom, a) }, selfContains: function (aD) { if (aC(av)) { for (var a in av) { if (av[a] == aD || al.contains(av[a], aD)) { return false } } } else { if (av) { if (av == aD || al.contains(av, aD)) { return false } } } return this.dom === aD || al.contains(this.dom, aD) } }; al.fn.init.prototype = al.fn; al.text = function (a) { var aD = "", aF; for (var aE = 0; a[aE]; aE++) { aF = a[aE]; if (aF.nodeType === 3 || aF.nodeType === 4) { aD += aF.nodeValue } else { if (aF.nodeType !== 8) { aD += al.text(aF.childNodes) } } } return aD }; al.contains = function (a, aD) { return a.contains ? a != aD && a.contains(aD) : !!(a.compareDocumentPosition(aD) & 16) }; al.bindEvent = function (aF, aD, aE) { var a = aD + aE; aF["e" + a] = aE; aF[a] = function (aH) { aH = d(aH || window.event); if (/mouse(over|out)/i.test(aH.type) && ((aH.target !== aF && !al.contains(aF, aH.target)) || al.contains(aF, aH.relatedTarget))) { return } var aG = aF["e" + a](aH); if (aG === false) { if (aH.preventDefault) { aH.preventDefault(); aH.stopPropagation() } else { aH.returnValue = false } aH.cancelBubble = true } }; if (aF.addEventListener) { aF.addEventListener(aD, aF[a], false) } else { aF.attachEvent("on" + aD, aF[a]) } }; al.unbindEvent = function (aF, aD, aE) { var a = aD + aE; if (aF.removeEventListener) { aF.removeEventListener(aD, aF[a], false) } else { aF.detachEvent("on" + aD, aF[a]) } aF["e" + a] = aF[a] = null }; al.bindReady = function (a) { if (am.readyState === "complete") { return setTimeout(a, 1) } ap[ap.length] = a }; function an() { if (am.attachEvent && am.readyState !== "complete") { return } al.unbindEvent(am, am.addEventListener ? "DOMContentLoaded" : "readystatechange", an); Y() } function Y() { if (e) { return } for (var a in ap) { ap[a]() } e = true } al.bindEvent(am, am.addEventListener ? "DOMContentLoaded" : "readystatechange", an); al.bindEvent(h, "load", Y); al.cookie = function (aE, aF, aD) { if (typeof aF != "undefined") { aD = aD || {}; var a = aD.expires; if (aF === null) { aF = ""; a = -1 } if (typeof a === "number") { var aG = a; a = new Date(); a.setDate(a.getDate() + aG) } return (am.cookie = [encodeURIComponent(aE), "=" + encodeURIComponent(aF), a ? "; expires=" + a.toUTCString() : "", aD.path ? "; path=" + aD.path : "", aD.domain ? "; domain=" + aD.domain : "", aD.secure ? "; secure" : ""].join("")) } else { if (match = am.cookie.match(new RegExp("(^|;| )" + aE + "s*=([^;]*)(;|$)", "i"))) { return unescape(match[2]) } else { return null } } }; function w(a) { return a.dom ? a.dom : a } function H(a) { return a.replace(/-([a-z])/g, function (aD, aE) { return aE.toUpperCase() }) } function d(aE) { if (!aE.target) { aE.target = aE.srcElement || am } if (!aE.relatedTarget && aE.fromElement) { aE.relatedTarget = aE.fromElement === aE.target ? aE.toElement : aE.fromElement } if (aE.pageX == null && aE.clientX != null) { var aD = am.documentElement, a = am.body; aE.pageX = aE.clientX + (aD && aD.scrollLeft || a && a.scrollLeft || 0) - (aD && aD.clientLeft || a && a.clientLeft || 0); aE.pageY = aE.clientY + (aD && aD.scrollTop || a && a.scrollTop || 0) - (aD && aD.clientTop || a && a.clientTop || 0) } if (aE.which == null) { aE.which = aE.charCode != null ? aE.charCode : (aE.keyCode != null ? aE.keyCode : null) } if (!aE.which && aE.button !== n) { aE.which = (aE.button & 1 ? 1 : (aE.button & 2 ? 3 : (aE.button & 4 ? 2 : 0))) } return aE } function ah(a) { return a.replace(/[^\x00-\xff]/g, "**").length } function aw() { return false } function aC(a) { if (!a) { return false } if (typeof jQuery != "undefined") { return jQuery.isArray(a) } return Object.prototype.toString.call(a) === "[object Array]" } var x = am.documentElement; var S = ((typeof i1_home == "undefined" || i1_home == "") ? "https://i1.haidii.com" : i1_home) + "/i1/js/hc3/"; var ag = "default", av = ""; var o = al(am), P = al(h); U.init = function (a) { if (a) { if (a.area) { x = a.area } if (a.skin) { ag = a.skin } if (a.not) { av = a.not } } }; U.reset = function () { x = al(x) }; U.not = function (a) { av = a }; var L = function (aD, a) { if (typeof aD === "string") { I = aD } else { var aE = al(aD); I = v(aE.text()); a = aE.offset() } if (I) { az = { pageX: a.left, pageY: a.top + 10 }; g(); l(); s() } }; var ay = true; var ak = true; var aq = false; var ar = false; var C, X, ac, Z, i, aj, f; var K, V, aA, j, u, F; var W = false; var B = false, ae; var I = "", az, O; var q; al.bindReady(function () { x = al(x); al(am.createElement("link")).attr({ href: S + "skins/" + ag + "/hc.css?v" + t, rel: "stylesheet", type: "text/css" }).appendTo(am.getElementsByTagName("head")[0]); C = al(am.createElement("div")).attr({ id: "dictHcBtn", title: unescape("%u67E5%u8BE2%u5F53%u524D%u9009%u62E9%u8BCD") }).css("display", "none").html(unescape("%u67E5%u8BCD%u5178")).appendTo(am.body); X = al(am.createElement("div")).attr("id", "dictHcBtnTop").css("display", "none").appendTo(am.body); ac = al(am.createElement("div")); ac.attr("id", "dictHc").css("display", "none").html('