您需要先安装一个扩展,例如 篡改猴、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';
- }
- }
- }
- };
- })();