替换掉 AGREE 论坛上的旧 flash 验证码模块
// ==UserScript== // @name AGREE 论坛替换 flash 验证码 // @namespace Aloxaf // @version 0.1.0 // @description 替换掉 AGREE 论坛上的旧 flash 验证码模块 // @author Aloxaf // @match http://www.galgamezs.com/bbs/* // @grant unsafeWindow // ==/UserScript== // jshint esversion: 6 function load_captcha() { let flash = document.querySelector('embed'); let img = document.querySelector('#captcha'); if (img === null) { let parent = document.querySelector('#seccodeswf_3'); img = document.createElement('img'); img.id = 'captcha'; flash.style = 'display: none'; parent.insertBefore(img, flash); } let update = flash.attributes.flashvars.textContent.match(/\d+$/)[0]; fetch(`http://www.galgamezs.com/bbs/seccode.php?update=${update}`, { method: 'POST', headers: {'Content-Type': 'application/x-www-form-urlencoded'}, body: 'fromFlash=1', credentials: 'same-origin', }).then(res => { return res.blob(); }).then(b => { let img = document.querySelector('#captcha'); img.src = window.URL.createObjectURL(b); }); } unsafeWindow.opensecwin3_bak = unsafeWindow.opensecwin3; unsafeWindow.opensecwin3 = (id, type) => { unsafeWindow.opensecwin3_bak(id, type); let flash_loaded = setInterval(() => { if (document.querySelector('embed') !== null) { load_captcha(); clearInterval(flash_loaded); } }, 50); }