// ==UserScript== // @name 恋爱游戏网+ // @namespace http://tampermonkey.net/code_recongnize // @version 2020.12.13.1 // @description 验证码自动识别填写,Ctrl+Enter快捷键发表评论,短评实时字数统计 // @author PY-DNG // @icon https://www.lianaiyx.com/images/member/nopic.gif // @include https://www.lianaiyx.com/ // @include https://www.lianaiyx.com/GalGame/* // @include https://www.lianaiyx.com/yangcheng/* // @include https://www.lianaiyx.com/monijingying/* // @include https://www.lianaiyx.com/celve/* // @include https://www.lianaiyx.com/jiemi/* // @include https://www.lianaiyx.com/ss/* // @include https://www.lianaiyx.com/yxzy/* // @include https://www.lianaiyx.com/gonglve/* // @include https://www.lianaiyx.com/e/pl/* // @require https://greasyfork.org/scripts/408740-%E6%81%8B%E7%88%B1%E6%B8%B8%E6%88%8F%E7%BD%914%E4%BD%8D%E6%95%B0%E5%AD%97%E9%AA%8C%E8%AF%81%E7%A0%81%E8%AF%86%E5%88%AB/code/%E6%81%8B%E7%88%B1%E6%B8%B8%E6%88%8F%E7%BD%914%E4%BD%8D%E6%95%B0%E5%AD%97%E9%AA%8C%E8%AF%81%E7%A0%81%E8%AF%86%E5%88%AB.js?version=837246 // @downloadURL none // ==/UserScript== (function() { 'use strict'; // 内置常量 const TEXT_TEXTHINT_ORIGINAL = '短评最多字数:140字;超过字数请发表长评。'; const TEXT_CHARACTERCOUNT = '短评字数统计:{CURCOUNT}/140字;超过140字请发布长评'; // 获取DOM元素 const input = document.getElementById('key'); const focusEvent = new Event('focus'); const codeImage = document.getElementById('KeyImgpl') ? document.getElementById('KeyImgpl') : document.getElementById('KeyImg'); const saytext = document.querySelector('#saytext'); // 自动识别填写验证码 if (codeImage) { codeImage.addEventListener('load', function() { const code = rec_image(codeImage); if (code) { input.value = code; } else { input.dispatchEvent(focusEvent); } }) input.dispatchEvent(focusEvent); } // Ctrl+Enter 发表评论 if (saytext) { saytext.addEventListener('keydown', function() { let keycode = event.keyCode; if (keycode === 13 && event.ctrlKey && !event.altKey) { document.querySelector('#saypl').submit(); } }) } // 短评实时字数统计 if (saytext) { const texthint = getTexthintElement(); const refreshCount = function() {texthint.textContent = TEXT_CHARACTERCOUNT.replace('{CURCOUNT}', String(saytext.value.length));}; // 首先统计一次字数 refreshCount(); // 当用户输入时,更新字数统计 saytext.addEventListener('input', refreshCount); // 用户使用输入设备交互时,更新字数统计/*_*毕竟有些时候用户不输入字符,内容也会被JS动态修改,对吧?*_*/ saytext.addEventListener('focus', refreshCount); saytext.addEventListener('mousedown', refreshCount); saytext.addEventListener('keydown', refreshCount); saytext.addEventListener('keyup', refreshCount); function getTexthintElement() { const allChilds = document.querySelector('#texthint').parentElement.childNodes; for (let i = 0; i < allChilds.length; i++) { if (allChilds[i].textContent.indexOf(TEXT_TEXTHINT_ORIGINAL) !== -1) { return allChilds[i]; } } } } })();