// ==UserScript==
// @name 天天基金数据抽取
// @namespace http://tampermonkey.net/
// @version 1.1.2
// @description 用以快捷显示累计净值,任期回报,一年前累计净值
// @author aotmd
// @match http://fund.eastmoney.com/*
// @match http://*.eastmoney.com/*
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_deleteValue
// @downloadURL none
// ==/UserScript==
(function () {
addLoadEvent(() => {
var url = window.location.href;
//主页面
var str = /fund\.eastmoney\.com\/.+/i;
//净值页面
var str2 = /.+eastmoney\.com.+/i;
if (str.test(url)) {
window.setTimeout(() => {
//显示出来
let a1 = document.createElement('div');
a1.className = "gs1";
document.body.appendChild(a1);
var 任期回报 = (document.querySelector("tr.noBorder > td.td04.bold.ui-color-red").innerText.replace("%","")/100).toFixed(4);
var 任职时间 = document.querySelector("tr.noBorder > td.td01").innerText.replace("~至今","");
var 累计净值 = document.querySelector("dd.dataNums > span.ui-color-red").innerText;
var 净值时间 = document.querySelector("dl.dataItem02 > dt > p").innerText.split('(')[1].replace(')', '');
//取得指定股票代码
var 股票代码=window.location.pathname.replace("/","").replace(".html","");
var 净值网址=document.querySelector("#Div2 > div.item_title.hd.eye-protector-processed > div.item_more > a").href;
//打开新窗口,获取净值
window.open(净值网址+"?ref="+股票代码, '_blank',
"height=100,width=100,top="+window.screen.height+",left="+window.screen.width+",location=0,menubar=0,status=0,titlebar=0,toolbar=0");
//持续监听变化
var flag="";
window.setInterval(()=>{
var 一年前的时间=GM_getValue(股票代码+"时间");
var 一年前累计净值=GM_getValue(股票代码+"净值");
if (flag===一年前累计净值)return;
flag=一年前累计净值;
a1.innerHTML =
"净值时间: " + 净值时间 +
"
累计净值: " + 累计净值 +
"
取值时间: " + 一年前的时间 +
"
累计净值: " + 一年前累计净值 +
"
任职时间: " + 任职时间 +
"
任期回报: " + 任期回报;
});
//显示基金名称
var 基金名称=document.querySelector("#body > div:nth-child(8) > div > div > a:nth-child(7)").innerText;
let a2 = document.createElement('div');
a2.className = "gs1";
document.body.appendChild(a2);
a2.innerHTML = 基金名称;
a2.style="top: 10%;font-size: 16px;"
}, 0);
}else if (str2.test(url)&&getQueryString("ref")!=null){
var ref=getQueryString("ref");
window.setTimeout(() => {
document.querySelector("#pagebar > div.pagebtns > input.pnum").value=13;
document.querySelector("#pagebar > div.pagebtns > input.pgo").click();
window.setTimeout(() => {
var 时间=document.querySelector("#jztable > table > tbody > tr:nth-child(3) > td:nth-child(1)").innerText;
var 净值=document.querySelector("#jztable > table > tbody > tr:nth-child(3) > td:nth-child(3)").innerText;
GM_setValue(ref+"时间", 时间);
GM_setValue(ref+"净值", 净值);
window.close();
},500);
},0);
}
});
addStyle(`
.gs1 {
padding: 5px 5px;
font-size: 14px;
color: snow;
position: fixed;
text-align: left;
cursor: copy;
border-radius: 10px;
background-color: rgba(147, 146, 234, 0.87);
right: 1%;
top: 15%;
z-index: 999999;
box-shadow: 0 0 7px 0 rgba(18, 80, 18,0.4), 0 0 0 1px rgba(0,0,0,0.3);
}`);
/**
* 添加浏览器执行事件
* @param func 无参匿名函数
*/
function addLoadEvent(func) {
let oldOnload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function () {
try {
oldOnload();
} catch (e) {
console.log(e);
} finally {
func();
}
}
}
}
/**
* 获取网页参数
* @param name 参数名称
* @returns {string|null}
*/
function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = decodeURI(window.location.search).substr(1).match(reg);
if(r != null) return (r[2]);
return null;
}
//添加css样式
function addStyle(rules) {
let styleElement = document.createElement('style');
styleElement["type"] = 'text/css';
document.getElementsByTagName('head')[0].appendChild(styleElement);
styleElement.appendChild(document.createTextNode(rules));
}
})();