您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
快速筛选系统版本,方便寻找越狱工具。
// ==UserScript== // @name TheAppleWiki JB Table Filter // @namespace http://tampermonkey.net/ // @version 2024-03-13 // @description 快速筛选系统版本,方便寻找越狱工具。 // @author tom-snow // @match https://theapplewiki.com/wiki/Jailbreak/*.x // @icon https://www.google.com/s2/favicons?sz=64&domain=theapplewiki.com // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; // Your code here... var wikitables = document.getElementsByClassName("wikitable"); // 取得页面所有表格 for (let tableId = 0; tableId < wikitables.length; tableId++){ // 对所有表格进行遍历处理 var table = wikitables[tableId]; // 取得表格对象 var versionTitleCell = table.rows[0].cells[0]; // 取得表格首个单元格,用于放筛选下拉框 table.id = "table_" + versionTitleCell.textContent.trim().replace(" ", "_"); // 为表格设置 id ,方便后续定位对象 var versions = ["Show All"]; // 存放表格内“系统版本号”数据 for (let rowId = 2; rowId < table.rows.length; rowId++){ var firstCellText = table.rows[rowId].cells[0].textContent.trim(); // 取得每行第一个单元格文本 const versionRegex = /^\d+\.\d+(\.\d+)?$/; if (versionRegex.test(firstCellText)){ // 判断是否满足版本号格式 versions.push(firstCellText); // 满足则添加到版本号列表 } } const selectElement = document.createElement('select'); // 创建下拉框对象 const brElement = document.createElement('br'); // 添加个换行对象 selectElement.id = "dropdown_" + versionTitleCell.textContent.trim().replace(" ", "_"); // 给下拉框绑定 id selectElement.addEventListener('change', function(event) { // 绑定值变化的事件及触发的函数 selectChanged(event); }); versions.forEach(option => { // 将各个版本号插件下拉框选项并且添加到下拉框对象中 const optionElement = document.createElement('option'); optionElement.value = option; optionElement.textContent = option; selectElement.appendChild(optionElement); }); versionTitleCell.appendChild(brElement); versionTitleCell.appendChild(selectElement); // 添加下拉框对象到表格首个单元格 } /*** * 触发事件后找到对应的数据表格,然后判断行号 */ function selectChanged(event){ // 定义下拉框值变化触发的函数 var selectId = event.target.id; // 触发事件的下拉框 id var value = event.target.value; // 变化后的值 var table = document.getElementById(selectId.replace("dropdown_", "table_")); // 找到对应表格 if (value === "Show All"){ // 选项值是显示全部就把各行的 hidden 参数设置为 false 以显示所有行 for (let rowId = 2; rowId < table.rows.length; rowId++){ table.rows[rowId].hidden = false; } } else { var rowIdMax = 99999999; // 定义一个最大数据行号备用,超过此行号后的行不显示 var foundFlag = false; // 定义一个标志位,意味着找到了对应系统版本号的行(当标志位为 true 期间展示对应行) for (let rowId = 2; rowId < table.rows.length; rowId++){ if (rowId >= rowIdMax ){ foundFlag = false ;} // 超过数据最大行号后把标志位置为 false var firstCell = table.rows[rowId].cells[0]; // 每行第一个 td var firstCellText = firstCell.textContent.trim(); // 取得其内文本 if (firstCellText === value){ // 第一个 td 文本等于下拉框当前值后设置最大数据行号并且将标志位置为 true rowIdMax = rowId + firstCell.rowSpan; foundFlag = true; } if (foundFlag) { // 根据标志位确定当前行显示与否 table.rows[rowId].hidden = false; } else { table.rows[rowId].hidden = true; } } } } })();