// ==UserScript== // @name Chiphell自动填充验证码 // @namespace http://www.chiphell.com/ // @version 0.2 // @description 自动填充在Chiphell上发帖和回复时的第一个验证码 // @author 1461748123 // @include http://www.chiphell.com/* // @include https://www.chiphell.com/* // @downloadURL https://update.greasyfork.icu/scripts/26112/Chiphell%E8%87%AA%E5%8A%A8%E5%A1%AB%E5%85%85%E9%AA%8C%E8%AF%81%E7%A0%81.user.js // @updateURL https://update.greasyfork.icu/scripts/26112/Chiphell%E8%87%AA%E5%8A%A8%E5%A1%AB%E5%85%85%E9%AA%8C%E8%AF%81%E7%A0%81.meta.js // ==/UserScript== window.addEventListener('load', function() { fillCaptcha(); checkCaptcha(); }, false); function fillCaptcha() { var captcha = getCaptcha(); var input = document.getElementsByName('secanswer')[0]; input.value = input.defaultValue = captcha; } function checkCaptcha() { eval(document.getElementsByName('secanswer')[0].getAttribute("onblur")); } function getCaptcha() { var html = document.getElementsByClassName('p_pop p_opt')[0].innerHTML; var key = getKey(html); var secret = getSecret(html); return secret.substring(getCaptchaStartLocation(key), getCaptchaEndLocation(key)) + 'CHH'; } function getKey(html) { var end = html.indexOf('位'); return html.substring(56, end); } function getSecret(html) { var start = html.indexOf('CHH
') + 33; var end = html.indexOf(' '); return html.substring(start, end).replace(/ /g, ""); } function getCaptchaStartLocation(key) { var spacer = key.indexOf('-'); return key.substring(0, spacer) - 1; } function getCaptchaEndLocation(key) { var spacer = key.indexOf('-'); return key.substring(spacer + 1); }