!(function (a, b) { function c() { var b = f.getBoundingClientRect().width; b / i > 420 && (b = 420 * i); var c = b / 10; (f.style.fontSize = c + 'px'), (k.rem = a.rem = c); } var d, e = a.document, f = e.documentElement, g = e.querySelector('meta[name="viewport"]'), h = e.querySelector('meta[name="flexible"]'), i = 0, j = 0, k = b.flexible || (b.flexible = {}); if (g) { console.warn('将根据已有的meta标签来设置缩放比例'); var l = g.getAttribute('content').match(/initial\-scale=([\d\.]+)/); l && ((j = parseFloat(l[1])), (i = parseInt(1 / j))); } else if (h) { var m = h.getAttribute('content'); if (m) { var n = m.match(/initial\-dpr=([\d\.]+)/), o = m.match(/maximum\-dpr=([\d\.]+)/); n && ((i = parseFloat(n[1])), (j = parseFloat((1 / i).toFixed(2)))), o && ((i = parseFloat(o[1])), (j = parseFloat((1 / i).toFixed(2)))); } } if (!i && !j) { var p = a.navigator.userAgent, q = (!!p.match(/android/gi), !!p.match(/iphone/gi)), r = q && !!p.match(/OS 9_3/), s = a.devicePixelRatio; (i = q && !r ? s >= 3 && (!i || i >= 3) ? 3 : s >= 2 && (!i || i >= 2) ? 2 : 1 : 1), (j = 1 / i); } if ((f.setAttribute('data-dpr', i), !g)) if ( ((g = e.createElement('meta')), g.setAttribute('name', 'viewport'), g.setAttribute( 'content', 'initial-scale=' + j + ', maximum-scale=' + j + ', minimum-scale=' + j + ', user-scalable=no' ), f.firstElementChild) ) f.firstElementChild.appendChild(g); else { var t = e.createElement('div'); t.appendChild(g), e.write(t.innerHTML); } a.addEventListener( 'resize', function () { clearTimeout(d), (d = setTimeout(c, 300)); }, !1 ), a.addEventListener( 'pageshow', function (a) { a.persisted && (clearTimeout(d), (d = setTimeout(c, 300))); }, !1 ), 'complete' === e.readyState ? (e.body.style.fontSize = 12 * i + 'px') : e.addEventListener( 'DOMContentLoaded', function () { e.body.style.fontSize = 12 * i + 'px'; }, !1 ), c(), (k.dpr = a.dpr = i), (k.refreshRem = c), (k.rem2px = function (a) { var b = parseFloat(a) * this.rem; return 'string' == typeof a && a.match(/rem$/) && (b += 'px'), b; }), (k.px2rem = function (a) { var b = parseFloat(a) / this.rem; return 'string' == typeof a && a.match(/px$/) && (b += 'rem'), b; }); })(window, window.lib || (window.lib = {}));