您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Prettify CK Announcement
// ==UserScript== // @name Tocas-UI CK_Announcement // @namespace http://tampermonkey.net/ // @version 0.1.2 // @description Prettify CK Announcement // @author oToToT // @match https://web.ck.tp.edu.tw/ann/* // @match http://web.ck.tp.edu.tw/ann/* // @require https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/tocas-ui/2.3.3/tocas.js // @require https://cdnjs.cloudflare.com/ajax/libs/air-datepicker/2.2.3/js/datepicker.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/air-datepicker/2.2.3/js/i18n/datepicker.zh.min.js // @grant GM_addStyle // ==/UserScript== /* initialize */ if(location.protocol === 'http:'){ location.protocol = 'https:' }else{ const AddStylesheet = async function(href){ let script = document.createElement('link'); script.setAttribute('href', href); script.setAttribute('rel','stylesheet'); script.setAttribute('type', 'text/css'); await document.head.appendChild(script); }; const identify = new URL(location.href); const page_type = identify.pathname console.log("Using: "+page_type); if(page_type === "/ann/" || page_type==="/ann/index.php"){ (async()=>{ /* add scripts */ await AddStylesheet("https://cdnjs.cloudflare.com/ajax/libs/tocas-ui/2.3.3/tocas.css"); await AddStylesheet("https://cdnjs.cloudflare.com/ajax/libs/air-datepicker/2.2.3/css/datepicker.min.css"); GM_addStyle(`body{ background-color: rgb(243, 227, 203) } .ts.surrounded{ padding: 1.8em !important; }`); /* my script */ let anns = []; $("table:eq(1) tr:not(:eq(0))").each(function(){ let obj = {}; obj.level = $(this).find("td:eq(0)").text().trim(); obj.title = $(this).find("td:eq(1)").text().trim(); obj.origin = $(this).find("td:eq(2)").text().trim(); obj.date = $(this).find("td:eq(3)").text().trim(); obj.popularity = $(this).find("td:eq(4)").text().trim(); obj.href = $(this).find('a').attr("href"); anns.push(obj); }); let htmlData = `<div class="ts fluid top link huge menu"> <div class="ts narrow container"><a class="item" href="/">台北市立建國高級中學公告系統</a><span class="item right"><a href="/ann/index.php"> <button class="ts mini very compact basic button">列出全部</button></a></span></div> </div> <div class="ts narrow container surrounded"> <table class="ts attatched selectable striped celled table"> <thead> <tr> <th>標題</th> <th>單位</th> <th>日期</th> <th>人氣</th> </tr> </thead> <tbody> ${anns.map((ele)=>{ let ret_str = ""; if(ele.level === '普通'){ ret_str += `<tr class="info indicated"> <!-- 普通-->`; }else if(ele.level === '重要'){ ret_str += `<tr class="primary indicated"> <!-- 重要-->`; }else if(ele.level === '急件'){ ret_str += `<tr class="negative indicated"> <!-- 急件-->`; }else{ return `<tr><td>Parsing Failed</td><td>Parsing Failed</td><td>Parsing Failed</td><td>Parsing Failed</td></tr>`;} ret_str += ` <td><a href="${ele.href}">${ele.title}</a></td> <td>${ele.origin}</td> <td>${ele.date}</td> <td>${ele.popularity}</td> </tr>` return ret_str; }).join('')} </tbody> </table> <div class="ts horizontal list"> <a class="item${(typeof $("a:contains('上一頁')").attr('href') === 'undefined')?" disabled":""}" href="${$("a:contains('上一頁')").attr('href')}">上一頁</a> <a class="item${(typeof $("a:contains('下一頁')").attr('href') === 'undefined')?" disabled":""}" href="${$("a:contains('下一頁')").attr('href')}">下一頁</a> <span class="item"> <select class="ts dropdown basic" onchange="location=this.value;"> ${$('select:eq(-1)').html()} </select> ${$('select:eq(-1)').next().text()} </span> </div> </div> </div> <div class="ts surrounded"> <div class="ts narrow container"> <div class="ts slate"> <form class="ts form" action="/ann/index.php" method="POST"> <fieldset> <legend>搜尋參數</legend> <div class="inline field"> <label for="mysearch">搜尋</label> <input id="mysearch" type="text" name="mysearch" /> </div> <div class="field"> <div class="ts toggle checkbox"> <input id="stxt" type="checkbox" name="stxt" /> <label for="stxt">含內容</label> </div> </div> <div class="inline fields"> <div class="eight wide field"> <label>幾天以內</label> <input type="number" name="myday" /> </div> <div class="eight wide field"> <label>何時之前</label> <input class="datepicker-here" id="mydate" type="text" data-language="zh" data-min-view="months" data-view="months" data-date-format="yyyy, MM" /> <input type="hidden" name="myyear" id="myyear"> <input type="hidden" name="mymonth" id="mymonth"> </div> </div> </fieldset> <div class="ts two fields"> <div class="field"> <label>類別</label> <select name="myclass"> ${$("select[name='myclass']:eq(0)").html()} </select> </div> <div class="field"> <label>群組</label> <select onchange="location.href=this.options[this.selectedIndex].value"> ${$("select[name='mypartid']:eq(1)").html()} </select> </div> </div> <button class="ts positive button">查詢</button> </form> </div> </div> </div>`; // clear data $("body").attr("background",""); $("center").remove(); $("br").remove(); $("style[id^='stylus']").remove(); // append html document.body.innerHTML += htmlData; $("#mydate").datepicker({ "onSelect": function(str, d, inst) { $("#myyear").val(d.getFullYear()); $("#mymonth").val(d.getMonth()); } }); })(); }else if(page_type === "show"){ } }