更新“工具”页面;主页可访问“工具”页面

This commit is contained in:
2019-09-25 23:03:39 +08:00
parent 8a556bad79
commit a99fdb2e7a
8 changed files with 449 additions and 91 deletions

View File

@@ -1,4 +1,6 @@
// 查找字符 tChar 在 str 中第 num 次出现的位置
/* ------------------------------------------- */
/* 查找字符 tChar 在 str 中第 num 次出现的位置 */
/* ------------------------------------------- */
/* 暂不使用
function findChar(str, tChar, num) {
@@ -13,35 +15,42 @@ function findChar(str, tChar, num) {
}
*/
// 加载列表
/* -------- */
/* 加载列表 */
/* -------- */
// Slinky 插件的 Option
// Slinky 插件的 Option //
var SlinkyOption = {
title: true,
speed: 200
};
var ListID = "#list_"
var ListID = "#list_"; // 列表 ID 前缀
var ListCount = 0;
// 列表总数
var ListCountMax = 17;
var ListCountMax = 17; // 列表总数
var FullsSreenText = document.getElementsByClassName("fullscreen-text")[0]; // 全屏文字
function loadList() {
ListCount = ListCount + 1;
ListID = "#list_" + ListCount;
$(ListID).slinky(SlinkyOption);
// 加载完毕
FullsSreenText.innerText = "已加载 " + ListCount + " 个分类"; // 全屏文字
// 加载完毕 //
if (ListCount == ListCountMax) {
clearInterval(I_LoadList);
setTarget();
displayList();
// document.title = "Frost 网址导航";
clearInterval(I_LoadList); // 停止定时执行
FullsSreenText.innerText = "加载完毕"; // 全屏文字
setTarget(); // 设置 target
displayList(); // 显示列表
}
}
// main 中的 A 标签的对象的集合(链接列表)
/* --------------------------------------- */
/* main 中的 A 标签的对象的集合(链接列表)*/
/* --------------------------------------- */
var LinkList = document.getElementsByTagName("main")[0].getElementsByTagName("a");
// 设置 target = "_blank"
/* ---------------------- */
/* 设置 target = "_blank" */
/* ---------------------- */
function setTarget() {
for (var i = 0; i < LinkList.length; i++) {
@@ -57,39 +66,42 @@ function setTarget() {
}
}
// 显示列表
/* -------- */
/* 显示列表 */
/* -------- */
function displayList() {
document.getElementsByTagName("main")[0].style.opacity = "1";
document.getElementsByClassName("fullscreen-text")[0].style.opacity = "0";
FullsSreenText.style.opacity = "0";
setTimeout("document.getElementsByClassName('fullscreen-text')[0].style.display = 'none';", 1000);
}
// 加载列表,间隔 100 毫秒
/* ----------------------- */
/* 加载列表,间隔 100 毫秒 */
/* ----------------------- */
var I_LoadList = setInterval("loadList()", 100);
// 搜索框
/* -------- */
/* 搜索面板 */
/* -------- */
var SearchMode = 1;
// 搜索面板
var SearchPanel = document.getElementsByClassName("search-panel")[0];
// 搜索输入框
var SearchInput = document.getElementsByClassName("search-input")[0];
// 搜索结果
var SearchResult = document.getElementsByClassName("search-result")[0];
var SearchPanel = document.getElementsByClassName("search-panel")[0]; // 搜索面板
var SearchInput = document.getElementsByClassName("search-input")[0]; // 搜索输入框
var SearchResult = document.getElementsByClassName("search-result")[0]; // 搜索结果
var SearchResultItem = "";
function search() {
// 循环次数
var LinkListCount = LinkList.length;
// 搜索关键词
var SearchWord = SearchInput.value.toLowerCase();
var LinkListCount = LinkList.length; // 循环次数
var SearchWord = SearchInput.value.toLowerCase(); // 搜索关键词
if (SearchMode == 1 && SearchWord != "") {
// 清空搜索结果
SearchResult.innerHTML = "";
SearchResult.innerHTML = ""; // 清空搜索结果
for (var i = 0; i < LinkListCount; i++) {
// 排除 href 是 # 的元素 //
if (LinkList[i].href.endsWith("#") == false) {
// 匹配关键词 //
if (LinkList[i].innerText.toLowerCase().indexOf(SearchWord) != -1 || LinkList[i].href.indexOf(SearchWord) != -1) {
// 复制元素 //
SearchResultItem = LinkList[i].cloneNode(true);
SearchResult.appendChild(SearchResultItem);
}
@@ -98,11 +110,16 @@ function search() {
} else if (SearchMode == 1 && SearchWord == "") {
SearchResult.innerHTML = "请输入关键词";
} else if (SearchMode == 2) {
// 清空输入框
SearchInput.value = "";
// 清空搜索结果
SearchResult.innerHTML = "";
// 隐藏搜索面板
SearchPanel.style.visibility = "hidden";
SearchInput.value = ""; // 清空输入框
SearchResult.innerHTML = ""; // 清空搜索结果
SearchPanel.style.visibility = "hidden"; // 隐藏搜索面板
} else {
SearchResult.innerHTML = "异常";
}
}
/* -------- */
/* 工具面板 */
/* -------- */
var ToolPanel = document.getElementsByClassName("tool-panel")[0]; // 工具面板

View File

@@ -1,5 +1,5 @@
var SlinkyOption={title:true,speed:200};var ListID="#list_";
var ListCount=0;var ListCountMax=17;function loadList(){ListCount=ListCount+1;ListID="#list_"+ListCount;$(ListID).slinky(SlinkyOption);if(ListCount==ListCountMax){clearInterval(I_LoadList);setTarget();displayList();}}
var SlinkyOption={title:true,speed:200};var ListID="#list_";var ListCount=0;var ListCountMax=17;var FullsSreenText=document.getElementsByClassName("fullscreen-text")[0];function loadList(){ListCount=ListCount+1;ListID="#list_"+ListCount;$(ListID).slinky(SlinkyOption);FullsSreenText.innerText="已加载 "+ListCount+" 个分类";if(ListCount==ListCountMax){clearInterval(I_LoadList);FullsSreenText.innerText="加载完毕";setTarget();displayList();}}
var LinkList=document.getElementsByTagName("main")[0].getElementsByTagName("a");function setTarget(){for(var i=0;i<LinkList.length;i++){if(LinkList[i].href.endsWith("#")==false){LinkList[i].target="_blank";}}}
function displayList(){document.getElementsByTagName("main")[0].style.opacity="1";document.getElementsByClassName("fullscreen-text")[0].style.opacity="0";setTimeout("document.getElementsByClassName('fullscreen-text')[0].style.display = 'none';",1000);}
var I_LoadList=setInterval("loadList()",100);var SearchMode=1;var SearchPanel=document.getElementsByClassName("search-panel")[0];var SearchInput=document.getElementsByClassName("search-input")[0];var SearchResult=document.getElementsByClassName("search-result")[0];var SearchResultItem="";function search(){var LinkListCount=LinkList.length;var SearchWord=SearchInput.value.toLowerCase();if(SearchMode==1&&SearchWord!=""){SearchResult.innerHTML="";for(var i=0;i<LinkListCount;i++){if(LinkList[i].href.endsWith("#")==false){if(LinkList[i].innerText.toLowerCase().indexOf(SearchWord)!=-1||LinkList[i].href.indexOf(SearchWord)!=-1){SearchResultItem=LinkList[i].cloneNode(true);SearchResult.appendChild(SearchResultItem);}}}}else if(SearchMode==1&&SearchWord==""){SearchResult.innerHTML="请输入关键词";}else if(SearchMode==2){SearchInput.value="";SearchResult.innerHTML="";SearchPanel.style.visibility="hidden";}}
function displayList(){document.getElementsByTagName("main")[0].style.opacity="1";FullsSreenText.style.opacity="0";setTimeout("document.getElementsByClassName('fullscreen-text')[0].style.display = 'none';",1000);}
var I_LoadList=setInterval("loadList()",100);var SearchMode=1;var SearchPanel=document.getElementsByClassName("search-panel")[0];var SearchInput=document.getElementsByClassName("search-input")[0];var SearchResult=document.getElementsByClassName("search-result")[0];var SearchResultItem="";function search(){var LinkListCount=LinkList.length;var SearchWord=SearchInput.value.toLowerCase();if(SearchMode==1&&SearchWord!=""){SearchResult.innerHTML="";for(var i=0;i<LinkListCount;i++){if(LinkList[i].href.endsWith("#")==false){if(LinkList[i].innerText.toLowerCase().indexOf(SearchWord)!=-1||LinkList[i].href.indexOf(SearchWord)!=-1){SearchResultItem=LinkList[i].cloneNode(true);SearchResult.appendChild(SearchResultItem);}}}}else if(SearchMode==1&&SearchWord==""){SearchResult.innerHTML="请输入关键词";}else if(SearchMode==2){SearchInput.value="";SearchResult.innerHTML="";SearchPanel.style.visibility="hidden";}else{SearchResult.innerHTML="异常";}}
var ToolPanel=document.getElementsByClassName("tool-panel")[0];

View File

@@ -1,16 +1,180 @@
/* ---- */
/* 计算 */
/* ---- */
function toolCalculateSubmit() {
getInput = document.getElementById("tool-calculate-input");
getToFixed = document.getElementsByClassName("tool-calculate-tofixed")[0];
getResult = document.getElementsByClassName("tool-calculate-result")[0].getElementsByTagName("span")[0];
if (getToFixed.value >= 0 && getToFixed.value <= 16) {
getResult.innerText = eval(getInput.value).toFixed(getToFixed.value);
GetInput = document.getElementById("tool-calculate-input"); // 算式输入框
GetToFixed = document.getElementsByClassName("tool-calculate-tofixed")[0]; // 保留小数点后的位数
GetResult = document.getElementsByClassName("tool-calculate-result")[0].getElementsByTagName("span")[0]; // 结果
GetCal = GetInput.value; // 获取输入的算式
GetCal = GetCal.replace(/π/g, "Math.PI"); // 替换圆周率Math.PI
GetCal = GetCal.replace(/幂/g, "Math.pow"); // 替换乘方运算Math.pow
GetCal = GetCal.replace(/平方根/g, "Math.sqrt"); // 替换乘方运算Math.pow
// 运行 //
if (GetToFixed.value >= 0 && GetToFixed.value <= 16) {
GetResult.innerText = eval(GetCal).toFixed(GetToFixed.value);
} else {
getResult.innerText = "错误";
GetResult.innerText = "保留位数有误0 ~ 16 之间)";
}
}
function toolCalculateClear() {
getInput = document.getElementById("tool-calculate-input");
getInput.value = '';
getResult.innerText = '';
GetInput = document.getElementById("tool-calculate-input"); // 算式输入框
GetInput.value = ''; // 清空“输入框”和“结果”
GetResult.innerText = ''; // 清空“结果”
}
/* ---------------- */
/* 生成批量下载链接 */
/* ---------------- */
function toolGenLinkSubmit() {
var VarText = "(*)"; // 变量表示
var BaseLink = document.getElementsByClassName("tool-genlink-link")[0].getElementsByTagName("input")[0].value; // 网址
var GetSettingType = document.getElementsByName("genlink-settings"); // 批量变化类型
// 设定 //
var GetSettingA = document.getElementsByClassName("genlink-settings-a")[0].getElementsByTagName("input"); // 等差数列
var GetSettingB = document.getElementsByClassName("genlink-settings-b")[0].getElementsByTagName("input"); // 等比数列
var GetSettingC = document.getElementsByClassName("genlink-settings-c")[0].getElementsByTagName("input"); // 字母变化
// 结果 //
var GetResult = document.getElementById("tool-genlink-result");
var LinkReplace = '';
var LinkResult = '';
// 自动补零 //
function AddZero() {
if (NumLength < NumLastLength) {
var ZeroMax = NumLastLength - NumLength; // 自动补零的个数
// 自动补 0 //
for (let i = 1; i <= ZeroMax; i++) {
Num = "0" + Num;
}
}
}
// 替换变量;替换变量;判断是否开启倒序;拼接结果;拼接结果 //
function CheckReverse() {
LinkReplace = BaseLink.replace(VarText, Num); // 替换链接中的变量为当前值VarText 替换为 Num
if (GetReverse == false) {
// console.log("非倒序");
LinkResult = LinkResult + LinkReplace + "\n"; // 拼接结果
} else if (GetReverse == true) {
// console.log("倒序");
LinkResult = LinkReplace + "\n" + LinkResult; // 拼接结果
}
}
// 运行 //
if (GetSettingType[0].checked == true) {
// 等差数列 //
// console.log("等差数列");
var GetFirst = parseInt(GetSettingA[1].value); // 首项
var GetLength = parseInt(GetSettingA[2].value); // 项数
var GetDiff = parseInt(GetSettingA[3].value); // 公差
var GetZero = GetSettingA[4].checked; // 补零
var GetReverse = GetSettingA[5].checked; // 倒序
// 判断是否开启补零 //
if (GetZero == true) {
// 等差数列 补零 //
// console.log("等差数列 补零");
var Num; // 当前项的值
var NumLength; // 当前项的值的位数
var NumLast = GetFirst + (GetLength - 1) * GetDiff; // 根据等差数列通项公式计算末项的值
var NumLastLength = NumLast.toString().length; // 末项的值的位数
// console.log("末项的值:" + NumLast);
for (var i = 1; i <= GetLength; i++) {
Num = GetFirst + (i - 1) * GetDiff; // 根据等差数列通项公式计算当前项的值
NumLength = Num.toString().length; // 当前项的值的位数
AddZero(); // 若位数不足,自动补零
CheckReverse(); // 替换变量;判断是否开启倒序;拼接结果
}
} else if (GetZero == false) {
// 等差数列 不补零 //
// console.log("等差数列 不补零");
var Num; // 当前项的值
for (var i = 1; i <= GetLength; i++) {
Num = GetFirst + (i - 1) * GetDiff; // 根据等差数列通项公式计算当前项的值
CheckReverse(); // 替换变量;判断是否开启倒序;拼接结果
}
}
} else if (GetSettingType[1].checked == true) {
// 等比数列 //
var GetFirst = parseInt(GetSettingB[1].value); // 首项
var GetLength = parseInt(GetSettingB[2].value); // 项数
var GetDiff = parseInt(GetSettingB[3].value); // 公比
var GetZero = GetSettingB[4].checked; // 补零
var GetReverse = GetSettingB[5].checked; // 倒序
// 判断是否开启补零 //
if (GetZero == true) {
// 等比数列 补零 //
// console.log("等比数列 补零");
var Num; // 当前项的值
var NumLength; // 当前项的值的位数
var NumLast = GetFirst * Math.pow(GetDiff, (GetLength - 1)); // 根据等比数列通项公式计算末项的值
var NumLastLength = NumLast.toString().length; // 末项的值的位数
// console.log("末项的值:" + NumLast);
for (var i = 1; i <= GetLength; i++) {
Num = GetFirst * Math.pow(GetDiff, (i - 1)); // 根据等比数列通项公式计算当前项的值
NumLength = Num.toString().length; // 当前项的值的位数
AddZero(); // 若位数不足,自动补零
CheckReverse(); // 替换变量;判断是否开启倒序;拼接结果
}
} else if (GetZero == false) {
// 等比数列 不补零 //
// console.log("等比数列 不补零");
var Num; // 当前项的值
for (var i = 1; i <= GetLength; i++) {
Num = GetFirst * Math.pow(GetDiff, (i - 1)); // 根据等比数列通项公式计算当前项的值
CheckReverse(); // 替换变量;判断是否开启倒序;拼接结果
}
}
} else if (GetSettingType[2].checked == true) {
// 字母变化 //
var GetFirst = GetSettingC[1].value.charCodeAt(0); // 从(获取对应字母的 Unicode 编码)
var GetLast = GetSettingC[2].value.charCodeAt(0); // 到(获取对应字母的 Unicode 编码)
var GetReverse = GetSettingC[3].checked; // 倒序
// console.log("从:" + GetFirst);
// console.log("到:" + GetLast);
// console.log("倒序:" + GetReverse);
if (GetFirst >= 65 && GetFirst <= 122 && GetLast >= 65 && GetLast <= 122) {
if (GetFirst < GetLast) {
for (var i = GetFirst; i <= GetLast; i++) {
if (i >= 91 && i <= 96) {
continue; // 若为 [ \ ] ^ _ ` 则跳出循环
}
Num = String.fromCharCode(i); // 获取对应 Unicode 编码的字母
CheckReverse(); // 替换变量;判断是否开启倒序;拼接结果
}
} else if (GetFirst > GetLast) {
GetResult.placeholder = "字母先后顺序有误。\n请按此顺序填写\nA - Z a - z\n例如\n从 a 到 d\n从 A 到 D\n从 X 到 g";
} else if (GetFirst == GetLast) {
GetResult.placeholder = "仅有 1 条链接,无需生成。";
} else {
GetResult.placeholder = "异常。";
}
} else {
GetResult.placeholder = "超出范围。";
}
} else {
// 异常 //
GetResult.placeholder = "类型选择有误";
}
GetResult.value = LinkResult; // 输出批量结果
}
function toolGenLinkClear() {
var GetResult = document.getElementById("tool-genlink-result");
GetResult.value = ''; // 清空结果
GetResult.placeholder = "结果";
}
/* --------------- */
/* 运行 JavaScript */
/* --------------- */
function toolRunJSSubmit() {
GetCode = document.getElementById("tool-runjs-input"); // 代码输入框
eval(GetCode.value); // 运行
}
function toolRunJSClear() {
GetCode = document.getElementById("tool-runjs-input"); // 代码输入框
GetCode.value = ''; // 清空
}

10
docs/js/tool.min.js vendored Normal file
View File

@@ -0,0 +1,10 @@
function toolCalculateSubmit(){GetInput=document.getElementById("tool-calculate-input");GetToFixed=document.getElementsByClassName("tool-calculate-tofixed")[0];GetResult=document.getElementsByClassName("tool-calculate-result")[0].getElementsByTagName("span")[0];GetCal=GetInput.value;GetCal=GetCal.replace(/π/g,"Math.PI");GetCal=GetCal.replace(/幂/g,"Math.pow");GetCal=GetCal.replace(/平方根/g,"Math.sqrt");if(GetToFixed.value>=0&&GetToFixed.value<=16){GetResult.innerText=eval(GetCal).toFixed(GetToFixed.value);}else{GetResult.innerText="保留位数有误0 ~ 16 之间)";}}
function toolCalculateClear(){GetInput=document.getElementById("tool-calculate-input");GetInput.value='';GetResult.innerText='';}
function toolGenLinkSubmit(){var VarText="(*)";var BaseLink=document.getElementsByClassName("tool-genlink-link")[0].getElementsByTagName("input")[0].value;var GetSettingType=document.getElementsByName("genlink-settings");var GetSettingA=document.getElementsByClassName("genlink-settings-a")[0].getElementsByTagName("input");var GetSettingB=document.getElementsByClassName("genlink-settings-b")[0].getElementsByTagName("input");var GetSettingC=document.getElementsByClassName("genlink-settings-c")[0].getElementsByTagName("input");var GetResult=document.getElementById("tool-genlink-result");var LinkReplace='';var LinkResult='';function AddZero(){if(NumLength<NumLastLength){var ZeroMax=NumLastLength-NumLength;for(let i=1;i<=ZeroMax;i++){Num="0"+Num;}}}
function CheckReverse(){LinkReplace=BaseLink.replace(VarText,Num);if(GetReverse==false){LinkResult=LinkResult+LinkReplace+"\n";}else if(GetReverse==true){LinkResult=LinkReplace+"\n"+LinkResult;}}
if(GetSettingType[0].checked==true){var GetFirst=parseInt(GetSettingA[1].value);var GetLength=parseInt(GetSettingA[2].value);var GetDiff=parseInt(GetSettingA[3].value);var GetZero=GetSettingA[4].checked;var GetReverse=GetSettingA[5].checked;if(GetZero==true){var Num;var NumLength;var NumLast=GetFirst+(GetLength-1)*GetDiff;var NumLastLength=NumLast.toString().length;for(var i=1;i<=GetLength;i++){Num=GetFirst+(i-1)*GetDiff;NumLength=Num.toString().length;AddZero();CheckReverse();}}else if(GetZero==false){var Num;for(var i=1;i<=GetLength;i++){Num=GetFirst+(i-1)*GetDiff;CheckReverse();}}}else if(GetSettingType[1].checked==true){var GetFirst=parseInt(GetSettingB[1].value);var GetLength=parseInt(GetSettingB[2].value);var GetDiff=parseInt(GetSettingB[3].value);var GetZero=GetSettingB[4].checked;var GetReverse=GetSettingB[5].checked;if(GetZero==true){var Num;var NumLength;var NumLast=GetFirst*Math.pow(GetDiff,(GetLength-1));var NumLastLength=NumLast.toString().length;for(var i=1;i<=GetLength;i++){Num=GetFirst*Math.pow(GetDiff,(i-1));NumLength=Num.toString().length;AddZero();CheckReverse();}}else if(GetZero==false){var Num;for(var i=1;i<=GetLength;i++){Num=GetFirst*Math.pow(GetDiff,(i-1));CheckReverse();}}}else if(GetSettingType[2].checked==true){var GetFirst=GetSettingC[1].value.charCodeAt(0);var GetLast=GetSettingC[2].value.charCodeAt(0);var GetReverse=GetSettingC[3].checked;if(GetFirst>=65&&GetFirst<=122&&GetLast>=65&&GetLast<=122){if(GetFirst<GetLast){for(var i=GetFirst;i<=GetLast;i++){if(i>=91&&i<=96){continue;}
Num=String.fromCharCode(i);CheckReverse();}}else if(GetFirst>GetLast){GetResult.placeholder="字母先后顺序有误。\n请按此顺序填写\nA - Z a - z\n例如\n从 a 到 d\n从 A 到 D\n从 X 到 g";}else if(GetFirst==GetLast){GetResult.placeholder="仅有 1 条链接,无需生成。";}else{GetResult.placeholder="异常。";}}else{GetResult.placeholder="超出范围。";}}else{GetResult.placeholder="类型选择有误";}
GetResult.value=LinkResult;}
function toolGenLinkClear(){var GetResult=document.getElementById("tool-genlink-result");GetResult.value='';GetResult.placeholder="结果";}
function toolRunJSSubmit(){GetCode=document.getElementById("tool-runjs-input");eval(GetCode.value);}
function toolRunJSClear(){GetCode=document.getElementById("tool-runjs-input");GetCode.value='';}