您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
sdfsdf
// ==UserScript== // @name Depth Chart Position On Roster Page // @namespace pbr/dcp // @include http://goallineblitz.com/game/roster.pl?team_id=* // @copyright 2010, pabst // @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/3.0/ // @version 10.12.21 // @description sdfsdf // ==/UserScript== window.setTimeout( function() { setupTabs(); var input = document.createElement("input"); input.type = "button"; input.value = "Load Depth Chart"; input.id = "buttonLoadDepthChart"; var input2 = document.createElement("input"); input2.type.checked = false; input2.type = "checkbox"; input2.value = "Load Special Teams"; input2.id = "buttonLoadSecialTeams"; input2.style.marginLeft = "5px"; var text = document.createElement("text"); text.textContent = " Load Special Teams"; var content = document.getElementById("content_depth"); content.insertBefore(text, content.childNodes[0]); content.insertBefore(input2, content.childNodes[0]); content.insertBefore(input, content.childNodes[0]); input.addEventListener("click",main,false); }, 1000); var attsO = ["Pos","Name","Lvl","QB","HB","FB","WR","WR1","WR2","WR3","WR4","WR5","TE","C","LOT","ROT","LG","RG"]; var attsD = ["Pos","Name","Lvl","NT","DT","LDE","RDE","LOLB","LILB","RILB","ROLB","CB","CB1","CB2","CB3","CB4","CB5","SS","FS"]; var attsK = ["Pos","Name","Lvl","K","P"]; var attsKO = ["Pos","Name","Lvl","KOS","OU1","OU2","OU3","OU4","OU5","OU6","IN1","IN2","IN3","IN4"]; var attsKR = ["Pos","Name","Lvl","KRS","OU1","OU2","OU3","OU4","FW1","FW2","FW3","BW1","BW2","BW3","KR"]; var attsP = ["Pos","Name","Lvl","LT","LG","LS","RG","RT","SE1","SE2","SB1","SB2","PP"]; var attsPR = ["Pos","Name","Lvl","SE1","SE2","ER1","ER2","DL1","DL2","DL3","DL4","PP1","PP2","PR"]; var attsFG = ["Pos","Name","Lvl","UB1","TE1","LT","LG","LS","RG","RT","TE2","UB2","PH"]; var attsFGB = ["Pos","Name","Lvl","DE1","DT1","NT","DT2","DE2","LB1","LB2","LB3","FS","FL1","FL2"]; var fullRoster = ""; function setupTabs() { fullRoster = document.createElement("thead"); var div = document.createElement("div"); div.setAttribute("id","tab_depth"); div.setAttribute("class","subtab_off"); div.innerHTML = "<a onclick=\"changeTab('depth', 1)\" href=\"javascript:;\">Depth</a>"; var content = document.createElement("div"); content.setAttribute("id","content_depth"); content.setAttribute("class","content_container"); content.style.display = "none" content.style.visibility = "hidden"; var headings = [attsO,attsD,attsK]; var titles = ["blah","Offense","Defense","Kicker"]; for (var i=1; i<titles.length; i++) { var title = document.createElement("div"); title.setAttribute("class","medium_head"); title.innerHTML = titles[i]+" Depth"; content.appendChild(title); var table = document.createElement("table"); table.setAttribute("class","players rowstyle-alternating_color2 onload-zebra no-arrow"); var thead = document.createElement("thead"); var tr = document.createElement("tr"); for (var j=0; j<headings[i-1].length; j++) { var th = document.createElement("th"); th.setAttribute("class","sortable-numeric fd-column-"+j); th.innerHTML = "<a class=\"fdTableSortTrigger\" title=\"Sort on “"+headings[i-1][j]+"”\" href=\"#\">"+headings[i-1][j]+"</a>"; tr.appendChild(th); } thead.appendChild(tr); var roster = document.getElementById("fd-table-"+i); for (var j=1; j<roster.rows.length; j++) { var tr = document.createElement("tr"); tr.setAttribute("class","alternating_color"+(((j+1)%2)+1)); var td1 = document.createElement("td"); td1.setAttribute("class",roster.rows[j].cells[7].className); td1.innerHTML = roster.rows[j].cells[7].innerHTML; tr.appendChild(td1); var td2 = document.createElement("td"); td2.setAttribute("class",roster.rows[j].cells[3].className); td2.innerHTML = roster.rows[j].cells[3].innerHTML.split("<img")[0]; tr.appendChild(td2); fullRoster.appendChild(tr.cloneNode(true)); thead.appendChild(tr); } table.appendChild(thead); table.rows[0].cells[0].setAttribute("class",table.rows[0].cells[0].getAttribute("class").replace("-numeric","-text")); table.rows[0].cells[1].setAttribute("class",table.rows[0].cells[1].getAttribute("class").replace("-numeric","-text")); table.rows[0].cells[1].style.width = "250px"; content.appendChild(table); } document.getElementById("content").appendChild(content); var tabs = document.getElementsByClassName("tabs")[0]; tabs.appendChild(div); } function main() { var btn = document.getElementById("buttonLoadDepthChart"); btn.disabled = true; var btn2 = document.getElementById("buttonLoadSpecialTeams"); btn.disabled = true; var addr = "http://goallineblitz.com/game/depth_chart.pl?team_id="; getInetPage(addr+window.location.toString().split("=")[1], handleDepthChart); } function handleDepthChart(address, page) { var code = page.responseText; code = code.split("<script>")[1].split("</script>")[0]; // console.log(code); var roster = []; var rosterById = []; var positionIds = []; eval(code); positionIds["krkr"] = positionIds["kr"]; positionIds["prpr"] = positionIds["pr"]; positionIds["pls"] = positionIds["ls"]; positionIds["fgph"] = positionIds["ph"]; var content = document.getElementById("content_depth"); //add offense insertion(content.getElementsByTagName("table")[0], attsO, positionIds); //add defense insertion(content.getElementsByTagName("table")[1], attsD, positionIds); //add kicker insertion(content.getElementsByTagName("table")[2], attsK, positionIds); var btn = document.getElementById("buttonLoadSecialTeams"); if (btn.checked == true) { var headings = [attsKO, attsKR, attsP, attsPR, attsFG, attsFGB]; var titles = ["blah", "Kickoff", "Kickoff Return", "Punt", "Punt Return", "Field Goal", "Field Goal Block"]; for (var i=1; i<titles.length; i++) { var title = document.createElement("div"); title.setAttribute("class","medium_head"); title.innerHTML = titles[i]+" Depth"; content.appendChild(title); var table = document.createElement("table"); table.setAttribute("class","players rowstyle-alternating_color2 onload-zebra no-arrow"); table.style.visibility = "hidden"; table.style.display = "none"; table.appendChild(fullRoster.cloneNode(true)); var tr = table.insertRow(0); for (var j=0; j<headings[i-1].length; j++) { var th = document.createElement("th"); th.setAttribute("class","sortable-numeric fd-column-"+j); th.innerHTML = "<a class=\"fdTableSortTrigger\" title=\"Sort on “"+headings[i-1][j]+"”\" href=\"#\">"+headings[i-1][j]+"</a>"; tr.appendChild(th); } table.rows[0].cells[0].setAttribute("class",table.rows[0].cells[0].getAttribute("class").replace("-numeric","-text")); table.rows[0].cells[1].setAttribute("class",table.rows[0].cells[1].getAttribute("class").replace("-numeric","-text")); table.rows[0].cells[1].style.width = "250px"; content.appendChild(table); } //add s-teams insertion(content.getElementsByTagName("table")[3], attsKO, positionIds); insertion(content.getElementsByTagName("table")[4], attsKR, positionIds, "kr"); insertion(content.getElementsByTagName("table")[5], attsP, positionIds, "p"); insertion(content.getElementsByTagName("table")[6], attsPR, positionIds, "pr"); insertion(content.getElementsByTagName("table")[7], attsFG, positionIds, "fg"); insertion(content.getElementsByTagName("table")[8], attsFGB, positionIds, "fg"); } fullRoster = null; //add levels var content = document.getElementById("content_depth"); var tbl = content.getElementsByTagName("table"); for (var tidx=0; tidx<tbl.length; tidx++) { for (var ridx=1; ridx<tbl[tidx].rows.length; ridx++) { var pid = tbl[tidx].rows[ridx].cells[1].getElementsByTagName("a")[0].href.split("=")[1]; var lvl = rosterById[pid].level; tbl[tidx].rows[ridx].insertCell(2); tbl[tidx].rows[ridx].cells[2].innerHTML = "<div style='text-align:center'>"+lvl+"</div>"; } } var tables = content.getElementsByTagName("table"); for (var i=0; i<tables.length; i++) { if (i > 2) { if (btn.checked == true) { for (var r=tables[i].rows.length-1; r>0; r--) { var empty = true; for (var c=3; c<tables[i].rows[r].cells.length; c++) { if (tables[i].rows[r].cells[c].firstChild.innerHTML != " - ") { empty = false; break; } } if (empty == true) { tables[i].deleteRow(r); } } tables[i].style.visibility = "visible"; tables[i].style.display = "block"; } } else { tables[i].style.visibility = "visible"; tables[i].style.display = "block"; } } } function insertion(tbl, pos, positionIds, prefix) { if (prefix == null) prefix = ""; for (var ridx=1; ridx<tbl.rows.length; ridx++) { var pid = tbl.rows[ridx].cells[1].getElementsByTagName("a")[0].href.split("=")[1]; for (var i=3; i<pos.length; i++) { var a = prefix+pos[i].toLowerCase(); var td = document.createElement("td"); td.innerHTML = "<div style='text-align:center'> - </div>"; if (positionIds[a] != null) { var depth = positionIds[a].indexOf(pid); if (depth != -1) { // console.log(pid+":"+a+") "+positionIds[a]+" !!!!! "+depth); td.innerHTML = "<div style='text-align:center'>"+(depth+1)+"</div>"; } } tbl.rows[ridx].appendChild(td); } } } function changeTab(pos) { return; } function getInetPage(address, func) { // console.log("getInetPage : "+address); var req = new XMLHttpRequest(); req.open( 'GET', address, true ); req.onload = function() { if (this.status != 200) { alert("pbr gm script: Error "+this.status+" loading "+address); } else { // console.log("loaded: "+address) func(address,this); } }; req.send(null); return req; }