您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
链接的参数会自动去除重复去除空值参数排序重新打开链接
// ==UserScript== // @name 链接参数去重去空 // @namespace https://raw.githubusercontent.com/fangtiansheng/xinhua/master/script/deurl.js // @include https://*/* // @version 0.2 // @description 链接的参数会自动去除重复去除空值参数排序重新打开链接 // @author 房天生 // @icon https://www.valuesimplex.com/images/favicon.ico // @grant none // @run-at document-start // @require https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.js // @match http://*/* // @grant GM_xmlhttpRequest // ==/UserScript== (function () { "use strict"; // Your code here... function jsonToUrl(json) { var str = ""; var nullPara = false; try { json = eval("(" + json + ")"); } catch (e) { console.log("JSON格式有误"); } for (var key in json) { if (nullPara) { console.log(nullPara); if (json[key] === "") { continue; } } if (typeof json[key] === "object") { str += key + "=" + JSON.stringify(json[key]) + "&"; } else { str += key + "=" + json[key] + "&"; } } str = "?" + str; str = encodeURI(str); return str.substr(0, str.length - 1); } function isNumber(val) { var regPos = /^\d+(\.\d+)?$/; var regNeg = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; return regPos.test(val) || regNeg.test(val); } function sortJson(jsonObj) { var keys = []; for (var key in jsonObj) { keys.push(key); } keys.sort(); var sortedJson = {}; for (var i in keys) { sortedJson[keys[i]] = jsonObj[keys[i]]; } return sortedJson; } function urlFormat(url) { var tickDecode = true; var tickFormat = true; var toJson = true; var str = url; if (str.split("?").length === 2 && str.charAt(0) === "?") { str = str.substr(1); } var json = {}; if (tickDecode) { str = decodeURIComponent(str); } if (tickFormat) { if (str.indexOf("?") < str.indexOf("&")) { str = str.replace(/\?/, "?\r\n"); } str = str.replace(/&/g, "\r\n").replace(/\+/g, " "); var lines = str.split("\n"); var temp = ""; for (var k in lines) { temp += lines[k].replace(/=/, ": ") + "\n"; } str = temp.trim(); } if (toJson) { tickDecode ? (str = decodeURIComponent(url)) : (str = url); str = str.replace(/\+/g, " "); var paramList = []; var params = []; var paramValue = ""; if (str.indexOf("?") < 0) { if (str.indexOf("&") < 0) { if (str.indexOf("=") < 0) { return str; } else { paramList = str.split("="); paramValue = paramList[1]; if (isNumber(paramValue) && paramValue.length < 17) { paramValue = parseFloat(paramValue); } json[paramList[0]] = paramValue; } } else { params = str.split("&"); for (var i = 0; i < params.length; i++) { if (params[i].endsWith("=")) { continue; } paramList = params[i].split("="); paramValue = paramList[1]; if (isNumber(paramValue) && paramValue.length < 17) { paramValue = parseFloat(paramValue); } json[paramList[0]] = paramValue; } } } else { if (str.indexOf("?") < str.indexOf("&")) { params = str.substr(str.indexOf("?") + 1).split("&"); for (var j = 0; j < params.length; j++) { if (params[i].endsWith("=")) { continue; } var key = params[j].substr(0, params[j].indexOf("=")); var value = params[j].substr(params[j].indexOf("=") + 1); paramList = [key, value]; paramValue = paramList[1]; if (isNumber(paramValue) && paramValue.length < 17) { paramValue = parseFloat(paramValue); } json[paramList[0]] = paramValue; } } else { params = str.split("&"); for (var h = 0; h < params.length; h++) { if (params[i].endsWith("=")) { continue; } paramList = params[h].split("="); paramValue = paramList[1]; if (isNumber(paramValue) && paramValue.length < 17) { paramValue = parseFloat(paramValue); } json[paramList[0]] = paramValue; } } } return JSON.stringify(json, null, 5); } else { return str; } } function dedupURIParam(url) { var params = url.split("?"); if (params.length < 2) { return url; } var baseurl = params[0]; var query = params[1]; var json = urlFormat(query); if (json == query) { return query; } else { var new_url = baseurl + jsonToUrl(json); return new_url; } } var url = window.location.href; var new_url = dedupURIParam(url); if (new_url == url) { console.log("没有重复参数"); } else { console.log(new_url); window.location.href = new_url; } })();