内含95个工具函数 前端大佬都在使用的JavaScript工具函数宝典( 五 )

49 替换地址栏function locationReplace(url) {if (history.replaceState) {history.replaceState(null, document.title, url);history.go(0);} else {location.replace(url);}}50 解决offsetX兼容性问题// 针对火狐不支持offsetX/Yfunction getOffset(e) {var target = e.target, // 当前触发的目标对象eventCoord,pageCoord,offsetCoord;// 计算当前触发元素到文档的距离pageCoord = getPageCoord(target);// 计算光标到文档的距离eventCoord = {X: window.pageXOffset + e.clientX,Y: window.pageYOffset + e.clientY};// 相减获取光标到第一个定位的父元素的坐标offsetCoord = {X: eventCoord.X - pageCoord.X,Y: eventCoord.Y - pageCoord.Y};return offsetCoord;}function getPageCoord(element) {var coord = { X: 0, Y: 0 };// 计算从当前触发元素到根节点为止,// 各级 offsetParent 元素的 offsetLeft 或 offsetTop 值之和while (element) {coord.X += element.offsetLeft;coord.Y += element.offsetTop;element = element.offsetParent;}return coord;}51 打开一个窗体通用方法function openWindow(url, windowName, width, height) {var x = parseInt(screen.width / 2.0) - width / 2.0;var y = parseInt(screen.height / 2.0) - height / 2.0;var isMSIE = navigator.appName == "Microsoft Internet Explorer";if (isMSIE) {var p = "resizable=1,location=no,scrollbars=no,width=";p = p + width;p = p + ",height=";p = p + height;p = p + ",left=";p = p + x;p = p + ",top=";p = p + y;retval = window.open(url, windowName, p);} else {var win = window.open(url,"ZyiisPopup","top=" +y +",left=" +x +",scrollbars=" +scrollbars +",dialog=yes,modal=yes,width=" +width +",height=" +height +",resizable=no");eval("try { win.resizeTo(width, height); } catch(e) { }");win.focus();}}52 将键值对拼接成URL带参数export default const fnParams2Url = obj=> {let aUrl = []let fnAdd = function(key, value) {return key + '=' + value}for (var k in obj) {aUrl.push(fnAdd(k, obj[k]))}return encodeURIComponent(aUrl.join('&')) }53 去掉url前缀function removeUrlPrefix(a) {a = a.replace(/:/g, ":").replace(/./g, ".").replace(///g, "/");while (trim(a).toLowerCase().indexOf("http://") == 0) {a = trim(a.replace(/http:///i, ""));}return a;}54 resize的操作(function() {var fn = function() {var w = document.documentElement? document.documentElement.clientWidth: document.body.clientWidth,r = 1255,b = Element.extend(document.body),classname = b.className;if (w < r) {//当窗体的宽度小于1255的时候执行相应的操作} else {//当窗体的宽度大于1255的时候执行相应的操作}};if (window.addEventListener) {window.addEventListener("resize", function() {fn();});} else if (window.attachEvent) {window.attachEvent("onresize", function() {fn();});}fn();})();55 替换全部String.prototype.replaceAll = function(s1, s2) {return this.replace(new RegExp(s1, "gm"), s2);};56 设置cookie值function setCookie(name, value, Hours) {var d = new Date();var offset = 8;var utc = d.getTime() + d.getTimezoneOffset() * 60000;var nd = utc + 3600000 * offset;var exp = new Date(nd);exp.setTime(exp.getTime() + Hours * 60 * 60 * 1000);document.cookie =name +"=" +escape(value) +";path=/;expires=" +exp.toGMTString() +";domain=360doc.com;";}57 滚动到顶部// 使用document.documentElement.scrollTop 或 document.body.scrollTop 获取到顶部的距离,从顶部// 滚动一小部分距离 。使用window.requestAnimationFrame()来滚动 。// @example// scrollToTop();function scrollToTop() {var c = document.documentElement.scrollTop || document.body.scrollTop;if (c > 0) {window.requestAnimationFrame(scrollToTop);window.scrollTo(0, c - c / 8);}}58 设为首页function setHomepage() {if (document.all) {document.body.style.behavior = "url(#default#homepage)";document.body.setHomePage("http://w3cboy.com");} else if (window.sidebar) {if (window.netscape) {try {netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");} catch (e) {alert("该操作被浏览器拒绝,如果想启用该功能,请在地址栏内输入 about:config,然后将项 signed.applets.codebase_principal_support 值该为true");}}var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setCharPref("browser.startup.homepage", "http://w3cboy.com");}}59 按字母排序,对每行进行数组排序function setSort() {var text = K1.value.split(/[rn]/).sort().join("rn"); //顺序var test = K1.value.split(/[rn]/).sort().reverse().join("rn"); //反序K1.value = https://www.isolves.com/it/cxkf/yy/js/2020-08-05/K1.value != text ? text : test;}60 延时执行


推荐阅读