您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
Restores the cursor position after romaji get converted to kana
// ==UserScript== // @name Bunpro: Prevent cursor from jumping to end of input field // @description Restores the cursor position after romaji get converted to kana // @version 0.1.4 // @namespace https://pampel.dev // @author pampel // @run-at document-start // @match https://bunpro.jp/* // @match https://www.bunpro.jp/* // @grant none // ==/UserScript== 'use strict'; addEventListener("turbolinks:load", () => { let inputElem = document.querySelector("#study-answer-input"); if (!inputElem) return; let oldEndPos = 0; let oldValue = ""; let imeActive = false; function listener() { // only needed for chrome || firefox if (document.activeElement !== inputElem || imeActive) return; if (oldValue !== inputElem.value && inputElem.selectionEnd === inputElem.value.length) inputElem.selectionEnd = inputElem.value.length - oldValue.length + oldEndPos; oldEndPos = inputElem.selectionEnd; oldValue = inputElem.value; } // firefox version inputElem.addEventListener('selectionchange', listener); inputElem.addEventListener('compositionstart', () => imeActive = true); inputElem.addEventListener('compositionend', () => imeActive = false); // chrome version document.addEventListener('selectionchange', listener); });