您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds ability to filter CPU by name, price range and score range on cpubenchmark.net
当前为
// ==UserScript== // @name Cpubenckmark.net FIlter // @namespace condorianocpubenchmark.net // @description Adds ability to filter CPU by name, price range and score range on cpubenchmark.net // @version 0.1 // @author condoriano // @include http://www.cpubenchmark.net/high_end_cpus.html* // @include http://www.cpubenchmark.net/mid_range_cpus.html* // @include http://www.cpubenchmark.net/midlow_range_cpus.html* // @include http://www.cpubenchmark.net/low_end_cpus.html* // @include http://www.cpubenchmark.net/common_cpus.html* // @include http://www.cpubenchmark.net/overclocked_cpus.html // @include http://www.cpubenchmark.net/multi_cpu.html* // @include http://www.cpubenchmark.net/singleThread.html // @include http://www.cpubenchmark.net/socketType.html // @include http://www.cpubenchmark.net/laptop.html // @include http://www.cpubenchmark.net/power_performance.html // @grant none // ==/UserScript== (function() { 'use strict'; var i = 0; var style = document.createElement('style'); style.innerHTML = '#filterDiv input[type="number"] { width: 60px; } #filterDiv .filter { display: inline-block; min-width: 33%; margin: 3px 0px; } #filterDiv .full { width: 100%; text-align: center; }'; document.head.appendChild(style); var filterDiv = document.createElement('div'); filterDiv.id = 'filterDiv'; filterDiv.style = 'background-color: #FFFF77; width: 700px; margin: 10px auto 30px; border: 1px dashed #FF7777; padding: 6px 12px; font-family: Tahoma; color: #222; font-size: 13px;'; filterDiv.innerHTML += '<div style="font-size: 18px; font-family: Georgia; padding: 3px 0px; text-align: center; margin-bottom: 8px; background-color: #FFAA33;">Filters</div>\ <form name="tablefilter"><div class="filter full">Name: <select name="namemode"><option value="show">Show</option><option value="hide">Hide</option> </select> <input name="name" type="text" placeholder="Accepts multiple values (separate each with a comma)" style="width: 500px;"></div>\ <div class="filter">Price: <input name="pricemin" type="number" placeholder="min"> to <input name="pricemax" type="number" placeholder="max"></div>\ <div class="filter">Score: <input name="scoremin" type="number" placeholder="min"> to <input name="scoremax" type="number" placeholder="max"></div>\ <div class="filter" style="text-align: right;"><input style="background-color: #7F7; border: 1px solid #080; cursor: pointer;" type="submit" value="Apply Filter"> <input style="background-color: transparent; border: none; box-shadow: none; color: #F00; cursor: pointer;" type="reset" name="reset" value="Reset Filter"></div></form>'; document.getElementsByClassName('chart')[0].parentElement.parentElement.insertBefore(filterDiv, document.getElementsByClassName('chart')[0].parentElement); document.forms.tablefilter.onsubmit = function(e) { document.activeElement.blur(); e.preventDefault(); var tables = document.querySelectorAll('table.chart'), filterNames = []; for(i = 0; i < tables.length; i++) { var row = tables[i].tBodies[0].rows; for(var j = 1; j < row.length; j++) { row[j].style.display = ''; filterNames = document.forms.tablefilter.elements.name.value.replace(/[ , ]+/g, ',').split(','); if(filterNames.length && document.forms.tablefilter.elements.name.value) { if(document.forms.tablefilter.elements.namemode.value == 'show') row[j].style.display = 'none'; else row[j].style.display = ''; for(var k = 0; k < filterNames.length; k++) { if(filterNames[k] === '') continue; if(document.forms.tablefilter.elements.namemode.value == 'show') { if(row[j].cells[0].children[0].innerHTML.toLowerCase().indexOf(filterNames[k].toLowerCase()) != -1) row[j].style.display = ''; } else { if(row[j].cells[0].children[0].innerHTML.toLowerCase().indexOf(filterNames[k].toLowerCase()) != -1) row[j].style.display = 'none'; } } } var pMin, pMax; if(document.forms.tablefilter.elements.pricemin.value && document.forms.tablefilter.elements.pricemax.value) { pMin = document.forms.tablefilter.elements.pricemin.value; pMax = document.forms.tablefilter.elements.pricemax.value; var price = parseFloat(row[j].cells[2].children[0].innerHTML.replace(/[^0-9.]/g, '')); if(price < pMin || price > pMax || !price) row[j].style.display = 'none'; } var sMin, sMax; if(document.forms.tablefilter.elements.scoremin.value && document.forms.tablefilter.elements.scoremax.value) { sMin = document.forms.tablefilter.elements.scoremin.value; sMax = document.forms.tablefilter.elements.scoremax.value; var score = parseFloat(row[j].cells[1].children[0].textContent.replace(/[^0-9.]/g, '')); if(j < 10) console.log(sMin + ', ' + sMax); if(score < sMin || score > sMax) row[j].style.display = 'none'; } } } }; })();