{"id":2436,"date":"2020-03-20T09:28:58","date_gmt":"2020-03-20T01:28:58","guid":{"rendered":"http:\/\/www.yuguoxy.com\/geekhome\/?p=2436"},"modified":"2026-08-18T12:35:24","modified_gmt":"2026-08-18T04:35:24","slug":"javascript%e5%b7%a5%e5%85%b7%e5%87%bd%e6%95%b0%e5%a4%a7%e5%85%a8%e4%ba%8c","status":"publish","type":"post","link":"https:\/\/ai.zhousir.top\/?p=2436","title":{"rendered":"JavaScript\u5de5\u5177\u51fd\u6570\u5927\u5168(\u4e8c)"},"content":{"rendered":"<section id=\"wenyan\" style=\"font-family: system-ui, 'Apple Color Emoji', 'Segoe UI', 'Segoe UI Symbol', 'Noto Sans', Roboto, sans-serif; line-height: 1.75; font-size: 16px; color: #000000; caret-color: #000000;\" data-provider=\"WenYan\">\n<p style=\"margin: 1em 0px;\">\u8fd9\u662f JavaScript \u5de5\u5177\u51fd\u6570\u5927\u5168\u7684\u7b2c <strong style=\"color: #4870ac;\">\u4e8c<\/strong> \u7bc7\uff0c\u6309\u300c\u83b7\u53d6 \/ \u5224\u65ad \/ URL \u4e0e\u7a97\u53e3 \/ \u5b57\u7b26\u4e32\u4e0e\u91d1\u989d\u300d\u628a\u5e38\u7528\u51fd\u6570\u644a\u5f00\uff0c\u65b9\u4fbf\u590d\u5236\u5230\u9879\u76ee\u91cc\u6539\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u6bcf\u4e2a\u6807\u9898\u4e0b\u90fd\u662f\u5b8c\u6574\u51fd\u6570\uff0c\u4e0d\u8981\u6f0f\u3002\u539f\u6587\uff1a<a href=\"https:\/\/github.com\/Wscats\/CV\/issues\/27\">https:\/\/github.com\/Wscats\/CV\/issues\/27<\/a>\u3002<\/p>\n<p style=\"margin: 1em 0px;\">cookie\u3001\u9875\u9762\u5c3a\u5bf8\u3001UA \u5224\u65ad\u3001trim \u548c <strong style=\"color: #4870ac;\">utf8_decode<\/strong> \u90fd\u5728\u4e0b\u9762\uff0c\u4fdd\u6301\u539f\u5b9e\u73b0\uff08\u542b\u5f53\u65f6\u7684\u517c\u5bb9\u5199\u6cd5\uff09\u3002<\/p>\n<table style=\"display: table; text-align: left; overflow: auto; border-collapse: collapse; margin: 1.4em auto; max-width: 100%; table-layout: fixed; overflow-wrap: break-word; word-break: break-all;\" width=\"800\">\n<thead>\n<tr>\n<th style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top; text-align: center; font-weight: bold; color: #4870ac; background: #f7f7f7;\">\u7c7b\u522b<\/th>\n<th style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top; text-align: center; font-weight: bold; color: #4870ac; background: #f7f7f7;\">\u4ee3\u8868\u51fd\u6570<\/th>\n<th style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top; text-align: center; font-weight: bold; color: #4870ac; background: #f7f7f7;\">\u7528\u9014<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u8bfb\u53d6<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">getCookie \/ getGet \/ getPageHeight<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">cookie\u3001GET\u3001\u9875\u9762\u4e0e\u89c6\u53e3\u5c3a\u5bf8<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u8bbe\u5907<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">isAndroid \/ isApple \/ isMobile<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">UA \u4e0e Touch \u5224\u65ad<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">URL \/ \u7a97\u4f53<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">getUrlParam \/ openWindow \/ replaceUrl<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u53c2\u6570\u3001\u5f00\u7a97\u3001\u5730\u5740\u680f<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u5b57\u7b26\u4e32<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">trim \/ \u5168\u534a\u89d2 \/ utf8_decode<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u7a7a\u767d\u3001\u5b57\u7b26\u96c6\u3001\u89e3\u7801<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u5176\u5b83<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">setCookie \/ uniqueId \/ \u91d1\u989d\u5927\u5199<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u5199\u5165\u3001\u65f6\u95f4\u6233\u3001\u8d22\u52a1\u5c55\u793a<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u83b7\u53d6cookie\u503c<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function getCookie(name) {\n  var arr = document.cookie.match(new RegExp(\"(^| )\" + name + \"=([^;]*)(;|$)\"));\n  if (arr != null) return unescape(arr[2]);\n  return null;\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u83b7\u5f97URL\u4e2dGET\u53c2\u6570\u503c<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">\/\/ \u7528\u6cd5\uff1a\u5982\u679c\u5730\u5740\u662f test.htm?t1=1&amp;t2=2&amp;t3=3, \u90a3\u4e48\u80fd\u53d6\u5f97\uff1aGET[\"t1\"], GET[\"t2\"], GET[\"t3\"]\nfunction getGet() {\n  querystr = window.location.href.split(\"?\");\n  if (querystr[1]) {\n    GETs = querystr[1].split(\"&amp;\");\n    GET = [];\n    for (i = 0; i &lt; GETs.length; i++) {\n      tmp_arr = GETs.split(\"=\");\n      key = tmp_arr[0];\n      GET[key] = tmp_arr[1];\n    }\n  }\n  return querystr[1];\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u83b7\u53d6\u79fb\u52a8\u8bbe\u5907\u521d\u59cb\u5316\u5927\u5c0f<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function getInitZoom() {\n  if (!this._initZoom) {\n    var screenWidth = Math.min(screen.height, screen.width);\n    if (this.isAndroidMobileDevice() &amp;&amp; !this.isNewChromeOnAndroid()) {\n      screenWidth = screenWidth \/ window.devicePixelRatio;\n    }\n    this._initZoom = screenWidth \/ document.body.offsetWidth;\n  }\n  return this._initZoom;\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u83b7\u53d6\u9875\u9762\u9ad8\u5ea6<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function getPageHeight() {\n  var g = document,\n    a = g.body,\n    f = g.documentElement,\n    d = g.compatMode == \"BackCompat\" ? a : g.documentElement;\n  return Math.max(f.scrollHeight, a.scrollHeight, d.clientHeight);\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u83b7\u53d6\u9875\u9762scrollLeft<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function getPageScrollLeft() {\n  var a = document;\n  return a.documentElement.scrollLeft || a.body.scrollLeft;\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u83b7\u53d6\u9875\u9762scrollTop<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function getPageScrollTop() {\n  var a = document;\n  return a.documentElement.scrollTop || a.body.scrollTop;\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u83b7\u53d6\u9875\u9762\u53ef\u89c6\u9ad8\u5ea6<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function getPageViewHeight() {\n  var d = document,\n    a = d.compatMode == \"BackCompat\" ? d.body : d.documentElement;\n  return a.clientHeight;\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u83b7\u53d6\u9875\u9762\u53ef\u89c6\u5bbd\u5ea6<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function getPageViewWidth() {\n  var d = document,\n    a = d.compatMode == \"BackCompat\" ? d.body : d.documentElement;\n  return a.clientWidth;\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u83b7\u53d6\u9875\u9762\u5bbd\u5ea6<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function getPageWidth() {\n  var g = document,\n    a = g.body,\n    f = g.documentElement,\n    d = g.compatMode == \"BackCompat\" ? a : g.documentElement;\n  return Math.max(f.scrollWidth, a.scrollWidth, d.clientWidth);\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u83b7\u53d6\u79fb\u52a8\u8bbe\u5907\u5c4f\u5e55\u5bbd\u5ea6<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function getScreenWidth() {\n  var smallerSide = Math.min(screen.width, screen.height);\n  var fixViewPortsExperiment =\n    rendererModel.runningExperiments.FixViewport ||\n    rendererModel.runningExperiments.fixviewport;\n  var fixViewPortsExperimentRunning =\n    fixViewPortsExperiment &amp;&amp; fixViewPortsExperiment.toLowerCase() === \"new\";\n  if (fixViewPortsExperiment) {\n    if (this.isAndroidMobileDevice() &amp;&amp; !this.isNewChromeOnAndroid()) {\n      smallerSide = smallerSide \/ window.devicePixelRatio;\n    }\n  }\n  return smallerSide;\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u83b7\u53d6\u7f51\u9875\u88ab\u5377\u53bb\u7684\u4f4d\u7f6e<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function getScrollXY() {\n  return document.body.scrollTop\n    ? {\n        x: document.body.scrollLeft,\n        y: document.body.scrollTop\n      }\n    : {\n        x: document.documentElement.scrollLeft,\n        y: document.documentElement.scrollTop\n      };\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u83b7\u53d6URL\u4e0a\u7684\u53c2\u6570<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">\/\/ \u83b7\u53d6URL\u4e2d\u7684\u67d0\u53c2\u6570\u503c,\u4e0d\u533a\u5206\u5927\u5c0f\u5199\n\/\/ \u83b7\u53d6URL\u4e2d\u7684\u67d0\u53c2\u6570\u503c,\u4e0d\u533a\u5206\u5927\u5c0f\u5199,\n\/\/ \u9ed8\u8ba4\u662f\u53d6'hash'\u91cc\u7684\u53c2\u6570\uff0c\n\/\/ \u5982\u679c\u4f20\u5176\u4ed6\u53c2\u6570\u652f\u6301\u53d6\u2018search\u2019\u4e2d\u7684\u53c2\u6570\n\/\/ @param {String} name \u53c2\u6570\u540d\u79f0\nexport function getUrlParam(name, type = \"hash\") {\n  let newName = name,\n    reg = new RegExp(\"(^|&amp;)\" + newName + \"=([^&amp;]*)(&amp;|$)\", \"i\"),\n    paramHash = window.location.hash.split(\"?\")[1] || \"\",\n    paramSearch = window.location.search.split(\"?\")[1] || \"\",\n    param;\n\n  type === \"hash\" ? (param = paramHash) : (param = paramSearch);\n\n  let result = param.match(reg);\n\n  if (result != null) {\n    return result[2].split(\"\/\")[0];\n  }\n  return null;\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u68c0\u9a8cURL\u94fe\u63a5\u662f\u5426\u6709\u6548<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function getUrlState(URL) {\n  var xmlhttp = new ActiveXObject(\"microsoft.xmlhttp\");\n  xmlhttp.Open(\"GET\", URL, false);\n  try {\n    xmlhttp.Send();\n  } catch (e) {\n  } finally {\n    var result = xmlhttp.responseText;\n    if (result) {\n      if (xmlhttp.Status == 200) {\n        return true;\n      } else {\n        return false;\n      }\n    } else {\n      return false;\n    }\n  }\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u83b7\u53d6\u7a97\u4f53\u53ef\u89c1\u8303\u56f4\u7684\u5bbd\u4e0e\u9ad8<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function getViewSize() {\n  var de = document.documentElement;\n  var db = document.body;\n  var viewW = de.clientWidth == 0 ? db.clientWidth : de.clientWidth;\n  var viewH = de.clientHeight == 0 ? db.clientHeight : de.clientHeight;\n  return Array(viewW, viewH);\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u83b7\u53d6\u79fb\u52a8\u8bbe\u5907\u6700\u5927\u5316\u5927\u5c0f<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function getZoom() {\n  var screenWidth =\n    Math.abs(window.orientation) === 90\n      ? Math.max(screen.height, screen.width)\n      : Math.min(screen.height, screen.width);\n  if (this.isAndroidMobileDevice() &amp;&amp; !this.isNewChromeOnAndroid()) {\n    screenWidth = screenWidth \/ window.devicePixelRatio;\n  }\n  var FixViewPortsExperiment =\n    rendererModel.runningExperiments.FixViewport ||\n    rendererModel.runningExperiments.fixviewport;\n  var FixViewPortsExperimentRunning =\n    FixViewPortsExperiment &amp;&amp;\n    (FixViewPortsExperiment === \"New\" || FixViewPortsExperiment === \"new\");\n  if (FixViewPortsExperimentRunning) {\n    return screenWidth \/ window.innerWidth;\n  } else {\n    return screenWidth \/ document.body.offsetWidth;\n  }\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u5224\u65ad\u662f\u5426\u5b89\u5353\u79fb\u52a8\u8bbe\u5907\u8bbf\u95ee<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function isAndroidMobileDevice() {\n  return \/android\/i.test(navigator.userAgent.toLowerCase());\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u5224\u65ad\u662f\u5426\u82f9\u679c\u79fb\u52a8\u8bbe\u5907\u8bbf\u95ee<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function isAppleMobileDevice() {\n  return \/iphone|ipod|ipad|Macintosh\/i.test(navigator.userAgent.toLowerCase());\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u5224\u65ad\u662f\u5426\u4e3a\u6570\u5b57\u7c7b\u578b<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function isDigit(value) {\n  var patrn = \/^[0-9]*$\/;\n  if (patrn.exec(value) == null || value == \"\") {\n    return false;\n  } else {\n    return true;\n  }\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u662f\u5426\u662f\u67d0\u7c7b\u624b\u673a\u578b\u53f7<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">\/\/ \u7528devicePixelRatio\u548c\u5206\u8fa8\u7387\u5224\u65ad\nconst isIphonex = () =&gt; {\n  \/\/ X XS, XS Max, XR\n  const xSeriesConfig = [\n    {\n      devicePixelRatio: 3,\n      width: 375,\n      height: 812\n    },\n    {\n      devicePixelRatio: 3,\n      width: 414,\n      height: 896\n    },\n    {\n      devicePixelRatio: 2,\n      width: 414,\n      height: 896\n    }\n  ];\n  \/\/ h5\n  if (typeof window !== \"undefined\" &amp;&amp; window) {\n    const isIOS = \/iphone\/gi.test(window.navigator.userAgent);\n    if (!isIOS) return false;\n    const { devicePixelRatio, screen } = window;\n    const { width, height } = screen;\n    return xSeriesConfig.some(\n      item =&gt;\n        item.devicePixelRatio === devicePixelRatio &amp;&amp;\n        item.width === width &amp;&amp;\n        item.height === height\n    );\n  }\n  return false;\n};<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u5224\u65ad\u662f\u5426\u79fb\u52a8\u8bbe\u5907<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function isMobile() {\n  if (typeof this._isMobile === \"boolean\") {\n    return this._isMobile;\n  }\n  var screenWidth = this.getScreenWidth();\n  var fixViewPortsExperiment =\n    rendererModel.runningExperiments.FixViewport ||\n    rendererModel.runningExperiments.fixviewport;\n  var fixViewPortsExperimentRunning =\n    fixViewPortsExperiment &amp;&amp; fixViewPortsExperiment.toLowerCase() === \"new\";\n  if (!fixViewPortsExperiment) {\n    if (!this.isAppleMobileDevice()) {\n      screenWidth = screenWidth \/ window.devicePixelRatio;\n    }\n  }\n  var isMobileScreenSize = screenWidth &lt; 600;\n  var isMobileUserAgent = false;\n  this._isMobile = isMobileScreenSize &amp;&amp; this.isTouchScreen();\n  return this._isMobile;\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u5224\u65ad\u5417\u662f\u5426\u624b\u673a\u53f7\u7801<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function isMobileNumber(e) {\n  var i =\n      \"134,135,136,137,138,139,150,151,152,157,158,159,187,188,147,182,183,184,178\",\n    n = \"130,131,132,155,156,185,186,145,176\",\n    a = \"133,153,180,181,189,177,173,170\",\n    o = e || \"\",\n    r = o.substring(0, 3),\n    d = o.substring(0, 4),\n    s =\n      !!\/^1\\d{10}$\/.test(o) &amp;&amp;\n      (n.indexOf(r) &gt;= 0\n        ? \"\u8054\u901a\"\n        : a.indexOf(r) &gt;= 0\n        ? \"\u7535\u4fe1\"\n        : \"1349\" == d\n        ? \"\u7535\u4fe1\"\n        : i.indexOf(r) &gt;= 0\n        ? \"\u79fb\u52a8\"\n        : \"\u672a\u77e5\");\n  return s;\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u5224\u65ad\u662f\u5426\u662f\u79fb\u52a8\u8bbe\u5907\u8bbf\u95ee<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function isMobileUserAgent() {\n  return \/iphone|ipod|android.*mobile|windows.*phone|blackberry.*mobile\/i.test(\n    window.navigator.userAgent.toLowerCase()\n  );\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u5224\u65ad\u9f20\u6807\u662f\u5426\u79fb\u51fa\u4e8b\u4ef6<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function isMouseOut(e, handler) {\n  if (e.type !== \"mouseout\") {\n    return false;\n  }\n  var reltg = e.relatedTarget\n    ? e.relatedTarget\n    : e.type === \"mouseout\"\n    ? e.toElement\n    : e.fromElement;\n  while (reltg &amp;&amp; reltg !== handler) {\n    reltg = reltg.parentNode;\n  }\n  return reltg !== handler;\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u5224\u65ad\u662f\u5426Touch\u5c4f\u5e55<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function isTouchScreen() {\n  return (\n    \"ontouchstart\" in window ||\n    (window.DocumentTouch &amp;&amp; document instanceof DocumentTouch)\n  );\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u5224\u65ad\u662f\u5426\u4e3a\u7f51\u5740<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function isURL(strUrl) {\n  var regular = \/^\\b(((https?|ftp):\\\/\\\/)?[-a-z0-9]+(\\.[-a-z0-9]+)*\\.(?:com|edu|gov|int|mil|net|org|biz|info|name|museum|asia|coop|aero|[a-z][a-z]|((25[0-5])|(2[0-4]\\d)|(1\\d\\d)|([1-9]\\d)|\\d))\\b(\\\/[-a-z0-9_:\\@&amp;?=+,.!\\\/~%\\$]*)?)$\/i;\n  if (regular.test(strUrl)) {\n    return true;\n  } else {\n    return false;\n  }\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u5224\u65ad\u662f\u5426\u6253\u5f00\u89c6\u7a97<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function isViewportOpen() {\n  return !!document.getElementById(\"wixMobileViewport\");\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u52a0\u8f7d\u6837\u5f0f\u6587\u4ef6<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function loadStyle(url) {\n  try {\n    document.createStyleSheet(url);\n  } catch (e) {\n    var cssLink = document.createElement(\"link\");\n    cssLink.rel = \"stylesheet\";\n    cssLink.type = \"text\/css\";\n    cssLink.href = url;\n    var head = document.getElementsByTagName(\"head\")[0];\n    head.appendChild(cssLink);\n  }\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u66ff\u6362\u5730\u5740\u680f<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function locationReplace(url) {\n  if (history.replaceState) {\n    history.replaceState(null, document.title, url);\n    history.go(0);\n  } else {\n    location.replace(url);\n  }\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u89e3\u51b3offsetX\u517c\u5bb9\u6027\u95ee\u9898<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">\/\/ \u9488\u5bf9\u706b\u72d0\u4e0d\u652f\u6301offsetX\/Y\nfunction getOffset(e) {\n  var target = e.target, \/\/ \u5f53\u524d\u89e6\u53d1\u7684\u76ee\u6807\u5bf9\u8c61\n    eventCoord,\n    pageCoord,\n    offsetCoord;\n\n  \/\/ \u8ba1\u7b97\u5f53\u524d\u89e6\u53d1\u5143\u7d20\u5230\u6587\u6863\u7684\u8ddd\u79bb\n  pageCoord = getPageCoord(target);\n\n  \/\/ \u8ba1\u7b97\u5149\u6807\u5230\u6587\u6863\u7684\u8ddd\u79bb\n  eventCoord = {\n    X: window.pageXOffset + e.clientX,\n    Y: window.pageYOffset + e.clientY\n  };\n\n  \/\/ \u76f8\u51cf\u83b7\u53d6\u5149\u6807\u5230\u7b2c\u4e00\u4e2a\u5b9a\u4f4d\u7684\u7236\u5143\u7d20\u7684\u5750\u6807\n  offsetCoord = {\n    X: eventCoord.X - pageCoord.X,\n    Y: eventCoord.Y - pageCoord.Y\n  };\n  return offsetCoord;\n}\n\nfunction getPageCoord(element) {\n  var coord = { X: 0, Y: 0 };\n  \/\/ \u8ba1\u7b97\u4ece\u5f53\u524d\u89e6\u53d1\u5143\u7d20\u5230\u6839\u8282\u70b9\u4e3a\u6b62\uff0c\n  \/\/ \u5404\u7ea7 offsetParent \u5143\u7d20\u7684 offsetLeft \u6216 offsetTop \u503c\u4e4b\u548c\n  while (element) {\n    coord.X += element.offsetLeft;\n    coord.Y += element.offsetTop;\n    element = element.offsetParent;\n  }\n  return coord;\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u6253\u5f00\u4e00\u4e2a\u7a97\u4f53\u901a\u7528\u65b9\u6cd5<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function openWindow(url, windowName, width, height) {\n  var x = parseInt(screen.width \/ 2.0) - width \/ 2.0;\n  var y = parseInt(screen.height \/ 2.0) - height \/ 2.0;\n  var isMSIE = navigator.appName == \"Microsoft Internet Explorer\";\n  if (isMSIE) {\n    var p = \"resizable=1,location=no,scrollbars=no,width=\";\n    p = p + width;\n    p = p + \",height=\";\n    p = p + height;\n    p = p + \",left=\";\n    p = p + x;\n    p = p + \",top=\";\n    p = p + y;\n    retval = window.open(url, windowName, p);\n  } else {\n    var win = window.open(\n      url,\n      \"ZyiisPopup\",\n      \"top=\" +\n        y +\n        \",left=\" +\n        x +\n        \",scrollbars=\" +\n        scrollbars +\n        \",dialog=yes,modal=yes,width=\" +\n        width +\n        \",height=\" +\n        height +\n        \",resizable=no\"\n    );\n    eval(\"try { win.resizeTo(width, height); } catch(e) { }\");\n    win.focus();\n  }\n  }<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u5c06\u952e\u503c\u5bf9\u62fc\u63a5\u6210URL\u5e26\u53c2\u6570<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">export default const fnParams2Url = obj=&gt; {\n      let aUrl = []\n      let fnAdd = function(key, value) {\n        return key + '=' + value\n      }\n      for (var k in obj) {\n        aUrl.push(fnAdd(k, obj[k]))\n      }\n      return encodeURIComponent(aUrl.join('&amp;'))\n }<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u53bb\u6389url\u524d\u7f00<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function removeUrlPrefix(a) {\n  a = a\n    .replace(\/\uff1a\/g, \":\")\n    .replace(\/\uff0e\/g, \".\")\n    .replace(\/\uff0f\/g, \"\/\");\n  while (\n    trim(a)\n      .toLowerCase()\n      .indexOf(\"http:\/\/\") == 0\n  ) {\n    a = trim(a.replace(\/http:\\\/\\\/\/i, \"\"));\n  }\n  return a;\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u66ff\u6362\u5168\u90e8<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">String.prototype.replaceAll = function(s1, s2) {\n  return this.replace(new RegExp(s1, \"gm\"), s2);\n};\n\nresize\u7684\u64cd\u4f5c\n(function() {\n  var fn = function() {\n    var w = document.documentElement\n        ? document.documentElement.clientWidth\n        : document.body.clientWidth,\n      r = 1255,\n      b = Element.extend(document.body),\n      classname = b.className;\n    if (w &lt; r) {\n      \/\/\u5f53\u7a97\u4f53\u7684\u5bbd\u5ea6\u5c0f\u4e8e1255\u7684\u65f6\u5019\u6267\u884c\u76f8\u5e94\u7684\u64cd\u4f5c\n    } else {\n      \/\/\u5f53\u7a97\u4f53\u7684\u5bbd\u5ea6\u5927\u4e8e1255\u7684\u65f6\u5019\u6267\u884c\u76f8\u5e94\u7684\u64cd\u4f5c\n    }\n  };\n  if (window.addEventListener) {\n    window.addEventListener(\"resize\", function() {\n      fn();\n    });\n  } else if (window.attachEvent) {\n    window.attachEvent(\"onresize\", function() {\n      fn();\n    });\n  }\n  fn();\n})();<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u6eda\u52a8\u5230\u9876\u90e8<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">\/\/ \u4f7f\u7528document.documentElement.scrollTop \u6216 document.body.scrollTop \u83b7\u53d6\u5230\u9876\u90e8\u7684\u8ddd\u79bb\uff0c\u4ece\u9876\u90e8\n\/\/ \u6eda\u52a8\u4e00\u5c0f\u90e8\u5206\u8ddd\u79bb\u3002\u4f7f\u7528window.requestAnimationFrame()\u6765\u6eda\u52a8\u3002\n\/\/ @example\n\/\/ scrollToTop();\nfunction scrollToTop() {\n  var c = document.documentElement.scrollTop || document.body.scrollTop;\n\n  if (c &gt; 0) {\n    window.requestAnimationFrame(scrollToTop);\n    window.scrollTo(0, c - c \/ 8);\n  }\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u8bbe\u7f6ecookie\u503c<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function setCookie(name, value, Hours) {\n  var d = new Date();\n  var offset = 8;\n  var utc = d.getTime() + d.getTimezoneOffset() * 60000;\n  var nd = utc + 3600000 * offset;\n  var exp = new Date(nd);\n  exp.setTime(exp.getTime() + Hours * 60 * 60 * 1000);\n  document.cookie =\n    name +\n    \"=\" +\n    escape(value) +\n    \";path=\/;expires=\" +\n    exp.toGMTString() +\n    \";domain=360doc.com;\";\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u8bbe\u4e3a\u9996\u9875<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function setHomepage() {\n  if (document.all) {\n    document.body.style.behavior = \"url(#default#homepage)\";\n    document.body.setHomePage(\"http:\/\/w3cboy.com\");\n  } else if (window.sidebar) {\n    if (window.netscape) {\n      try {\n        netscape.security.PrivilegeManager.enablePrivilege(\n          \"UniversalXPConnect\"\n        );\n      } catch (e) {\n        alert(\n          \"\u8be5\u64cd\u4f5c\u88ab\u6d4f\u89c8\u5668\u62d2\u7edd\uff0c\u5982\u679c\u60f3\u542f\u7528\u8be5\u529f\u80fd\uff0c\u8bf7\u5728\u5730\u5740\u680f\u5185\u8f93\u5165 about:config,\u7136\u540e\u5c06\u9879 signed.applets.codebase_principal_support \u503c\u8be5\u4e3atrue\"\n        );\n      }\n    }\n    var prefs = Components.classes[\n      \"@mozilla.org\/preferences-service;1\"\n    ].getService(Components.interfaces.nsIPrefBranch);\n    prefs.setCharPref(\"browser.startup.homepage\", \"http:\/\/w3cboy.com\");\n  }\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u6309\u5b57\u6bcd\u6392\u5e8f\uff0c\u5bf9\u6bcf\u884c\u8fdb\u884c\u6570\u7ec4\u6392\u5e8f<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function setSort() {\n  var text = K1.value\n    .split(\/[\\r\\n]\/)\n    .sort()\n    .join(\"\\r\\n\"); \/\/\u987a\u5e8f\n  var test = K1.value\n    .split(\/[\\r\\n]\/)\n    .sort()\n    .reverse()\n    .join(\"\\r\\n\"); \/\/\u53cd\u5e8f\n  K1.value = K1.value != text ? text : test;\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u5ef6\u65f6\u6267\u884c<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">\/\/ \u6bd4\u5982 sleep(1000) \u610f\u5473\u7740\u7b49\u5f851000\u6beb\u79d2\uff0c\u8fd8\u53ef\u4ece Promise\u3001Generator\u3001Async\/Await \u7b49\u89d2\u5ea6\u5b9e\u73b0\u3002\n\/\/ Promise\nconst sleep = time =&gt; {\n  return new Promise(resolve =&gt; setTimeout(resolve, time));\n};\n\nsleep(1000).then(() =&gt; {\n  console.log(1);\n});\n\n\/\/ Generator\nfunction* sleepGenerator(time) {\n  yield new Promise(function(resolve, reject) {\n    setTimeout(resolve, time);\n  });\n}\n\nsleepGenerator(1000)\n  .next()\n  .value.then(() =&gt; {\n    console.log(1);\n  });\n\n\/\/async\nfunction sleep(time) {\n  return new Promise(resolve =&gt; setTimeout(resolve, time));\n}\n\nasync function output() {\n  let out = await sleep(1000);\n  console.log(1);\n  return out;\n}\n\noutput();\n\nfunction sleep(callback, time) {\n  if (typeof callback === \"function\") {\n    setTimeout(callback, time);\n  }\n}\n\nfunction output() {\n  console.log(1);\n}\n\nsleep(output, 1000);<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u5224\u65ad\u662f\u5426\u4ee5\u67d0\u4e2a\u5b57\u7b26\u4e32\u5f00\u5934<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">String.prototype.startWith = function(s) {\n  return this.indexOf(s) == 0;\n};<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u6e05\u9664\u811a\u672c\u5185\u5bb9<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function stripscript(s) {\n  return s.replace(\/&lt;script.*?&gt;.*?&lt;\\\/script&gt;\/gi, \"\");\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u65f6\u95f4\u4e2a\u6027\u5316\u8f93\u51fa\u529f\u80fd<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">\/*\n1\u3001&lt; 60s, \u663e\u793a\u4e3a\u201c\u521a\u521a\u201d\n2\u3001&gt;= 1min &amp;&amp; &lt; 60 min, \u663e\u793a\u4e0e\u5f53\u524d\u65f6\u95f4\u5dee\u201cXX\u5206\u949f\u524d\u201d\n3\u3001&gt;= 60min &amp;&amp; &lt; 1day, \u663e\u793a\u4e0e\u5f53\u524d\u65f6\u95f4\u5dee\u201c\u4eca\u5929 XX:XX\u201d\n4\u3001&gt;= 1day &amp;&amp; &lt; 1year, \u663e\u793a\u65e5\u671f\u201cXX\u6708XX\u65e5 XX:XX\u201d\n5\u3001&gt;= 1year, \u663e\u793a\u5177\u4f53\u65e5\u671f\u201cXXXX\u5e74XX\u6708XX\u65e5 XX:XX\u201d\n*\/\nfunction timeFormat(time) {\n  var date = new Date(time),\n    curDate = new Date(),\n    year = date.getFullYear(),\n    month = date.getMonth() + 10,\n    day = date.getDate(),\n    hour = date.getHours(),\n    minute = date.getMinutes(),\n    curYear = curDate.getFullYear(),\n    curHour = curDate.getHours(),\n    timeStr;\n\n  if (year &lt; curYear) {\n    timeStr = year + \"\u5e74\" + month + \"\u6708\" + day + \"\u65e5 \" + hour + \":\" + minute;\n  } else {\n    var pastTime = curDate - date,\n      pastH = pastTime \/ 3600000;\n\n    if (pastH &gt; curHour) {\n      timeStr = month + \"\u6708\" + day + \"\u65e5 \" + hour + \":\" + minute;\n    } else if (pastH &gt;= 1) {\n      timeStr = \"\u4eca\u5929 \" + hour + \":\" + minute + \"\u5206\";\n    } else {\n      var pastM = curDate.getMinutes() - minute;\n      if (pastM &gt; 1) {\n        timeStr = pastM + \"\u5206\u949f\u524d\";\n      } else {\n        timeStr = \"\u521a\u521a\";\n      }\n    }\n  }\n  return timeStr;\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u5168\u89d2\u8f6c\u6362\u4e3a\u534a\u89d2\u51fd\u6570<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function toCDB(str) {\n  var result = \"\";\n  for (var i = 0; i &lt; str.length; i++) {\n    code = str.charCodeAt(i);\n    if (code &gt;= 65281 &amp;&amp; code &lt;= 65374) {\n      result += String.fromCharCode(str.charCodeAt(i) - 65248);\n    } else if (code == 12288) {\n      result += String.fromCharCode(str.charCodeAt(i) - 12288 + 32);\n    } else {\n      result += str.charAt(i);\n    }\n  }\n  return result;\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u534a\u89d2\u8f6c\u6362\u4e3a\u5168\u89d2\u51fd\u6570<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function toDBC(str) {\n  var result = \"\";\n  for (var i = 0; i &lt; str.length; i++) {\n    code = str.charCodeAt(i);\n    if (code &gt;= 33 &amp;&amp; code &lt;= 126) {\n      result += String.fromCharCode(str.charCodeAt(i) + 65248);\n    } else if (code == 32) {\n      result += String.fromCharCode(str.charCodeAt(i) + 12288 - 32);\n    } else {\n      result += str.charAt(i);\n    }\n  }\n  return result;\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u91d1\u989d\u5927\u5199\u8f6c\u6362\u51fd\u6570<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function transform(tranvalue) {\n  try {\n    var i = 1;\n    var dw2 = new Array(\"\", \"\u4e07\", \"\u4ebf\"); \/\/\u5927\u5355\u4f4d\n    var dw1 = new Array(\"\u62fe\", \"\u4f70\", \"\u4edf\"); \/\/\u5c0f\u5355\u4f4d\n    var dw = new Array(\n      \"\u96f6\",\n      \"\u58f9\",\n      \"\u8d30\",\n      \"\u53c1\",\n      \"\u8086\",\n      \"\u4f0d\",\n      \"\u9646\",\n      \"\u67d2\",\n      \"\u634c\",\n      \"\u7396\"\n    );\n    \/\/\u6574\u6570\u90e8\u5206\u7528\n    \/\/\u4ee5\u4e0b\u662f\u5c0f\u5199\u8f6c\u6362\u6210\u5927\u5199\u663e\u793a\u5728\u5408\u8ba1\u5927\u5199\u7684\u6587\u672c\u6846\u4e2d\n    \/\/\u5206\u79bb\u6574\u6570\u4e0e\u5c0f\u6570\n    var source = splits(tranvalue);\n    var num = source[0];\n    var dig = source[1];\n    \/\/\u8f6c\u6362\u6574\u6570\u90e8\u5206\n    var k1 = 0; \/\/\u8ba1\u5c0f\u5355\u4f4d\n    var k2 = 0; \/\/\u8ba1\u5927\u5355\u4f4d\n    var sum = 0;\n    var str = \"\";\n    var len = source[0].length; \/\/\u6574\u6570\u7684\u957f\u5ea6\n    for (i = 1; i &lt;= len; i++) {\n      var n = source[0].charAt(len - i); \/\/\u53d6\u5f97\u67d0\u4e2a\u4f4d\u6570\u4e0a\u7684\u6570\u5b57\n      var bn = 0;\n      if (len - i - 1 &gt;= 0) {\n        bn = source[0].charAt(len - i - 1); \/\/\u53d6\u5f97\u67d0\u4e2a\u4f4d\u6570\u524d\u4e00\u4f4d\u4e0a\u7684\u6570\u5b57\n      }\n      sum = sum + Number(n);\n      if (sum != 0) {\n        str = dw[Number(n)].concat(str); \/\/\u53d6\u5f97\u8be5\u6570\u5b57\u5bf9\u5e94\u7684\u5927\u5199\u6570\u5b57\uff0c\u5e76\u63d2\u5165\u5230str\u5b57\u7b26\u4e32\u7684\u524d\u9762\n        if (n == \"0\") sum = 0;\n      }\n      if (len - i - 1 &gt;= 0) {\n        \/\/\u5728\u6570\u5b57\u8303\u56f4\u5185\n        if (k1 != 3) {\n          \/\/\u52a0\u5c0f\u5355\u4f4d\n          if (bn != 0) {\n            str = dw1[k1].concat(str);\n          }\n          k1++;\n        } else {\n          \/\/\u4e0d\u52a0\u5c0f\u5355\u4f4d\uff0c\u52a0\u5927\u5355\u4f4d\n          k1 = 0;\n          var temp = str.charAt(0);\n          if (temp == \"\u4e07\" || temp == \"\u4ebf\")\n            \/\/\u82e5\u5927\u5355\u4f4d\u524d\u6ca1\u6709\u6570\u5b57\u5219\u820d\u53bb\u5927\u5355\u4f4d\n            str = str.substr(1, str.length - 1);\n          str = dw2[k2].concat(str);\n          sum = 0;\n        }\n      }\n      if (k1 == 3) {\n        \/\/\u5c0f\u5355\u4f4d\u5230\u5343\u5219\u5927\u5355\u4f4d\u8fdb\u4e00\n        k2++;\n      }\n    }\n    \/\/\u8f6c\u6362\u5c0f\u6570\u90e8\u5206\n    var strdig = \"\";\n    if (dig != \"\") {\n      var n = dig.charAt(0);\n      if (n != 0) {\n        strdig += dw[Number(n)] + \"\u89d2\"; \/\/\u52a0\u6570\u5b57\n      }\n      var n = dig.charAt(1);\n      if (n != 0) {\n        strdig += dw[Number(n)] + \"\u5206\"; \/\/\u52a0\u6570\u5b57\n      }\n    }\n    str += \"\u5143\" + strdig;\n  } catch (e) {\n    return \"0\u5143\";\n  }\n  return str;\n}\n\/\/\u62c6\u5206\u6574\u6570\u4e0e\u5c0f\u6570\nfunction splits(tranvalue) {\n  var value = new Array(\"\", \"\");\n  temp = tranvalue.split(\".\");\n  for (var i = 0; i &lt; temp.length; i++) {\n    value = temp;\n  }\n  return value;\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u6e05\u9664\u7a7a\u683c<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">String.prototype.trim = function() {\n  var reExtraSpace = \/^\\s*(.*?)\\s+$\/;\n  return this.replace(reExtraSpace, \"$1\");\n};\n\n\/\/ \u6e05\u9664\u5de6\u7a7a\u683c\n\nfunction ltrim(s) {\n  return s.replace(\/^(\\s*|\u3000*)\/, \"\");\n}\n\n\/\/ \u6e05\u9664\u53f3\u7a7a\u683c\n\nfunction rtrim(s) {\n  return s.replace(\/(\\s*|\u3000*)$\/, \"\");\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u968f\u673a\u6570\u65f6\u95f4\u6233<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function uniqueId() {\n  var a = Math.random,\n    b = parseInt;\n  return (\n    Number(new Date()).toString() + b(10 * a()) + b(10 * a()) + b(10 * a())\n  );\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u5b9e\u73b0utf8\u89e3\u7801<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">function utf8_decode(str_data) {\n  var tmp_arr = [],\n    i = 0,\n    ac = 0,\n    c1 = 0,\n    c2 = 0,\n    c3 = 0;\n  str_data += \"\";\n  while (i &lt; str_data.length) {\n    c1 = str_data.charCodeAt(i);\n    if (c1 &lt; 128) {\n      tmp_arr[ac++] = String.fromCharCode(c1);\n      i++;\n    } else if (c1 &gt; 191 &amp;&amp; c1 &lt; 224) {\n      c2 = str_data.charCodeAt(i + 1);\n      tmp_arr[ac++] = String.fromCharCode(((c1 &amp; 31) &lt;&lt; 6) | (c2 &amp; 63));\n      i += 2;\n    } else {\n      c2 = str_data.charCodeAt(i + 1);\n      c3 = str_data.charCodeAt(i + 2);\n      tmp_arr[ac++] = String.fromCharCode(\n        ((c1 &amp; 15) &lt;&lt; 12) | ((c2 &amp; 63) &lt;&lt; 6) | (c3 &amp; 63)\n      );\n      i += 3;\n    }\n  }\n  return tmp_arr.join(\"\");\n}<\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u539f\u6587\uff1ahttps:\/\/github.com\/Wscats\/CV\/issues\/27<\/p>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\">\n<p style=\"margin: 1em 0px;\"><strong style=\"color: #4870ac;\">\u4e00\u53e5\u8bdd\u603b\u7ed3\uff1a\u5de5\u5177\u51fd\u6570\u6309\u573a\u666f\u8bb0\uff1a\u8bfb cookie\/URL\/\u89c6\u53e3\u7528 getter\uff0c\u8bbe\u5907\u4e0e\u53f7\u7801\u7528 is* \u5224\u65ad\uff0c\u5b57\u7b26\u4e32\u91d1\u989d\u7528 trim\/\u5168\u534a\u89d2\/\u5927\u5199\u8f6c\u6362\uff0c\u590d\u5236\u540e\u6309\u9879\u76ee\u518d\u6536\u53e3\u3002<\/strong><\/p>\n<\/blockquote>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>\u8fd9\u662f JavaScript \u5de5\u5177\u51fd\u6570\u5927\u5168\u7684\u7b2c \u4e8c \u7bc7\uff0c\u6309\u300c\u83b7\u53d6 \/ \u5224\u65ad \/ URL \u4e0e\u7a97\u53e3 \/ \u5b57\u7b26\u4e32\u4e0e\u91d1\u989d [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[109,105],"tags":[150],"_links":{"self":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts\/2436"}],"collection":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2436"}],"version-history":[{"count":2,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts\/2436\/revisions"}],"predecessor-version":[{"id":2438,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts\/2436\/revisions\/2438"}],"wp:attachment":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2436"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2436"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2436"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}