您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
广东省气象业务网数值预报页面修改
当前为
// ==UserScript== // @name NWP_helper // @description 广东省气象业务网数值预报页面修改 // @namespace minhill.com // @include http://10.148.8.228/to_fore_homepage.action* // @version 0.2 // @grant GM_addStyle // ==/UserScript== // select the target node var fcHour = document.getElementById('forecast_hour'); var iniTime = document.getElementById('create_day'); var infoBar = document.getElementById('pic_info'); var referNode = document.getElementById('to_contrast'); var divTime = document.createElement('span'); divTime.textContent = 'hello world'; divTime.setAttribute('class', 'lcTime'); divTime.style.position = 'relative'; divTime.style.float = 'right'; divTime.style.right = '120px'; infoBar.insertBefore(divTime, referNode); // create an observer instance var UTC8 = new MutationObserver(function (mutations) { var dateString = iniTime.textContent.match(/(\d+).*?(\d+).*?(\d+).*?(\d+)/); var fcDate = [ ]; fcDate[0] = Number(dateString[1]); fcDate[1] = Number(dateString[2]); fcDate[2] = Number(dateString[3]); fcDate[3] = Number(dateString[4]); fcDate[4] = Number(fcHour.textContent.match(/\d+/)); fcDate[5] = new Date(fcDate[0], fcDate[1] - 1, fcDate[2], fcDate[3] + fcDate[4] + 8); var localTime = String(fcDate[5].getMonth() + 1) + '月' + fcDate[5].getDate() + '日' + fcDate[5].getHours() + '时 GMT+8'; divTime.textContent = localTime; }); // configuration of the observer: var config = { attributes: true, childList: true, characterData: true }; UTC8.observe(fcHour, config); // later, you can stop observing //observer.disconnect(); var selectObserver = new MutationObserver(function (mutations) { //alert(timeBar.length); var dateString = iniTime.textContent.match(/(\d+).*?(\d+).*?(\d+).*?(\d+)/); var fcDate = []; fcDate[0] = Number(dateString[1]); fcDate[1] = Number(dateString[2]); fcDate[2] = Number(dateString[3]); fcDate[3] = Number(dateString[4]); for (var i = 0; i < timeBar.length; i++) { oValue = timeBar[i].value fcDate[4] = Number(timeBar[i].value); fcDate[5] = new Date(fcDate[0], fcDate[1] - 1, fcDate[2], fcDate[3] + fcDate[4] + 8); iday = String(fcDate[5].getDate()); iday = Array(2 > iday.length ? 2 - iday.length + 1 || 0 : 0).join(0) + iday; ihour = String(fcDate[5].getHours()); ihour = Array(2 > ihour.length ? 2 - ihour.length + 1 || 0 : 0).join(0) + ihour; localTime = iday+'d' + ihour+'hr'; styleText = '#'+timeBar[i].getAttribute("id")+':before{content: "'+localTime+' "}'; GM_addStyle(styleText); } }); // configuration of the observer: var timeBar = document.querySelector("#forecast_hours select"); var config = { attributes: true, childList: false, characterData: false }; selectObserver.observe(timeBar, config); var hourBar = document.getElementById('from_hour'); var pre24 = document.createElement('button'); pre24.addEventListener("click", function(){timeTrigger(-24)}); pre24.textContent = "-24"; hourBar.appendChild(pre24); var next24 = document.createElement('button'); next24.addEventListener("click", function(){timeTrigger(24)}); next24.textContent = "+24"; hourBar.appendChild(next24); var timeTrigger = function(timer){ selectedVal = timeBar[timeBar.selectedIndex].getAttribute("data-hour"); nextVal = String(Number(selectedVal) + timer); var posi = 3; nextVal = Array(posi > nextVal.length ? posi - nextVal.length + 1 || 0 : 0).join(0) + nextVal; nextopt = timeBar.querySelector("#option_"+nextVal); //alert(nextopt); if(!nextopt) return; timeBar[timeBar.selectedIndex].selected = false nextopt.selected = true; //var oitem = document.getElementById('option_018'); //oitem.selected = true; var changeEvt = document.createEvent('HTMLEvents'); changeEvt.initEvent('change',true,true); timeBar.dispatchEvent(changeEvt); }