NWP_helper

广东省气象业务网数值预报页面修改

目前为 2017-01-04 提交的版本。查看 最新版本

// ==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);
}


QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址