From a99fdb2e7a0fb8b77add15c245feb2d3a0b56938 Mon Sep 17 00:00:00 2001
From: Frost-ZX <30585462+Frost-ZX@users.noreply.github.com>
Date: Wed, 25 Sep 2019 23:03:39 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E2=80=9C=E5=B7=A5=E5=85=B7?=
=?UTF-8?q?=E2=80=9D=E9=A1=B5=E9=9D=A2=EF=BC=9B=E4=B8=BB=E9=A1=B5=E5=8F=AF?=
=?UTF-8?q?=E8=AE=BF=E9=97=AE=E2=80=9C=E5=B7=A5=E5=85=B7=E2=80=9D=E9=A1=B5?=
=?UTF-8?q?=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/css/style.css | 50 ++++++++----
docs/css/tool.css | 107 ++++++++++++++++++++++---
docs/index.html | 15 +++-
docs/js/script.js | 87 ++++++++++++--------
docs/js/script.min.js | 8 +-
docs/js/tool.js | 182 +++++++++++++++++++++++++++++++++++++++---
docs/js/tool.min.js | 10 +++
docs/tool.html | 81 +++++++++++++++----
8 files changed, 449 insertions(+), 91 deletions(-)
create mode 100644 docs/js/tool.min.js
diff --git a/docs/css/style.css b/docs/css/style.css
index bdfbcdb..a52566f 100644
--- a/docs/css/style.css
+++ b/docs/css/style.css
@@ -9,8 +9,6 @@
* text #222
*/
-/* reset */
-
* {
border-radius: 0;
box-sizing: border-box;
@@ -21,8 +19,6 @@
user-select: none;
}
-/* global */
-
html {
scroll-behavior: smooth;
}
@@ -223,31 +219,54 @@ footer img {
/* 工具面板 */
.tool-panel {
+ visibility: hidden;
+ z-index: 100;
position: fixed;
left: 0;
bottom: 0;
}
.tool-panel-bar {
- height: 5vh;
- background-color: #F5F5F5;
+ height: 32px;
+}
+
+.tool-panel-newtab, .tool-panel-close {
+ position: absolute;
+ top: 0;
+ height: 32px;
+ width: 64px;
+ box-shadow: -2px 0 10px 0 rgba(0, 0, 0, 0.1);
+ line-height: 32px;
+ text-align: center;
+ font-size: 14px;
+ color: #FFF;
+}
+
+.tool-panel-blank {
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: 32px;
+ width: 100%;
+ background-color: #FFF;
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
+}
+
+.tool-panel-newtab {
+ right: 72px;
+ background-color: #2196F3;
}
.tool-panel-close {
- position: absolute;
- top: 0;
right: 8px;
- height: 5vh;
- width: 5vh;
- box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
- background-color: #4CAF50;
+ background-color: #F44336;
}
.tool-panel-iframe {
}
.tool-panel-iframe iframe {
- height: 95vh;
+ height: calc(100vh - 32px);
width: 100vw;
}
@@ -271,7 +290,7 @@ main section li a:not(.back) {
position: fixed;
top: 50%;
left: 50%;
- font-size: 10vw;
+ font-size: 5vw;
transform: translate(-50%, -50%);
transition: opacity 1s;
}
@@ -310,7 +329,7 @@ main section li a:not(.back) {
height: 50px;
border: none;
background-color: #03A9F4;
- box-shadow: 0 0 5px rgba(3, 169, 244, 0.1);
+ box-shadow: 0 5px 10px -5px rgba(3, 169, 244, 0.4);
font-size: 20px;
color: #FFF;
transition: background 0.2s;
@@ -363,6 +382,7 @@ main section li a:not(.back) {
/* 悬浮栏 */
.floating-bar {
+ z-index: 50;
position: fixed;
left: 0;
bottom: 20px;
diff --git a/docs/css/tool.css b/docs/css/tool.css
index ce50889..2b4be7f 100644
--- a/docs/css/tool.css
+++ b/docs/css/tool.css
@@ -5,8 +5,14 @@
padding: 0;
}
+html {
+ scroll-behavior: smooth;
+}
+
body {
+ padding: 20px 0 50px 0;
background-color: #F5F5F5;
+ scroll-behavior: smooth;
}
/* 滚动条 */
@@ -52,6 +58,7 @@ body {
padding: 15px;
box-sizing: border-box;
width: 100%;
+ border-radius: 5px;
background-color: #FFF;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
@@ -63,12 +70,21 @@ body {
font-weight: bold;
}
+.main > div input:focus {
+ outline: none;
+}
+
.main > div textarea {
padding: 5px;
box-sizing: border-box;
+ width: 100%;
border: 1px solid #03A9F4;
- font-size: 16px;
box-shadow: 0 0 5px rgba(3, 169, 244, 0.2);
+ font-size: 14px;
+}
+
+.main > div textarea:focus {
+ outline: none;
}
.tool-button {
@@ -81,17 +97,47 @@ body {
color: #FFF;
border-radius: 5px;
box-shadow: 2px 2px 5px rgba(3, 169, 244, 0.4);
+ transition: background 0.2s;
}
.tool-button:hover {
background-color: #2196F3;
}
+/* 导航 */
+
+.tool-nav ul li {
+ display: inline-block;
+ list-style: none;
+}
+
+.tool-nav ul li a {
+ display: block;
+ float: left;
+ padding: 5px 9px;
+ border-radius: 5px;
+ background-color: #4CAF50;
+ text-decoration: none;
+ font-size: 14px;
+ color: #FFF;
+ transition: background 0.2s;
+}
+
+.tool-nav ul li a:hover {
+ background-color: #8BC34A;
+}
+
+.tool-nav-link {
+ margin: 0 auto;
+ box-sizing: border-box;
+ width: 100%;
+}
+
/* 计算 */
.tool-calculate textarea {
- width: 100%;
- resize: none;
+ resize: vertical;
+ font-size: 16px;
}
.tool-calculate-tofixed {
@@ -105,25 +151,68 @@ body {
/* 生成批量下载链接 */
+.tool-genlink hr {
+ height: 0;
+ border: 0.5px solid #EEE;
+}
+
.tool-genlink-link input {
margin-bottom: 10px;
+ padding: 0 2px;
height: 20px;
width: 80%;
+ border: 1px solid #03A9F4;
}
.tool-genlink-settings {
+ user-select: none;
+ font-size: 14px;
+}
+
+.tool-genlink-settings > div {
+ margin: 5px 0;
+}
+
+.tool-genlink-settings input[type="text"] {
+ width: 25px;
font-size: 14px;
}
.tool-genlink .tool-button {
- position: relative;
- left: 50%;
- margin-bottom: 10px;
- transform: translateX(-50%);
+ margin: 10px 5px 10px 0;
}
.tool-genlink textarea {
- width: 100%;
- resize: none;
+ resize: vertical;
font-size: 14px;
}
+
+/* 运行 JavaScript */
+
+.tool-runjs textarea {
+ resize: vertical;
+ font-family: monospace;
+ font-size: 14px;
+}
+
+.tool-runjs .tool-button {
+ margin: 5px 5px 0 0;
+}
+
+/* 返回顶部 */
+
+.to-top {
+ position: fixed;
+ right: 20px;
+ bottom: 20px;
+ height: 40px;
+ width: 40px;
+ border-radius: 50%;
+ box-shadow: 2px 2px 5px rgba(76, 175, 80, 0.5);
+ background-color: #4CAF50;
+ text-align: center;
+ line-height: 36px;
+ font-size: 20px;
+ color: #FFF;
+ user-select: none;
+}
diff --git a/docs/index.html b/docs/index.html
index 27a73a8..2008c54 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -16,6 +16,7 @@
Frost 网址导航
Frost Site Navigation
+
-
- -->
+
加载中...
+
+
+
diff --git a/docs/js/script.js b/docs/js/script.js
index e9bb7b1..eceb1c2 100644
--- a/docs/js/script.js
+++ b/docs/js/script.js
@@ -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]; // 工具面板
diff --git a/docs/js/script.min.js b/docs/js/script.min.js
index 6cf84de..e0fff55 100644
--- a/docs/js/script.min.js
+++ b/docs/js/script.min.js
@@ -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= 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 = ''; // 清空
}
diff --git a/docs/js/tool.min.js b/docs/js/tool.min.js
new file mode 100644
index 0000000..d4b2332
--- /dev/null
+++ b/docs/js/tool.min.js
@@ -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=65&&GetFirst<=122&&GetLast>=65&&GetLast<=122){if(GetFirst=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='';}
diff --git a/docs/tool.html b/docs/tool.html
index 3407a27..d83b79d 100644
--- a/docs/tool.html
+++ b/docs/tool.html
@@ -4,38 +4,89 @@
- Frost 网址导航 - 工具
+
+ Frost 网址导航 - 小工具