您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
change cursor behavior so that it doesn't jump to the end when editing kana
- // ==UserScript==
- // @name WaniKani Cursor Behavior
- // @namespace https://www.wanikani.com
- // @description change cursor behavior so that it doesn't jump to the end when editing kana
- // @version 0.1.0
- // @include https://www.wanikani.com/review/session
- // @include https://www.wanikani.com/lesson/session
- // @include http://www.wanikani.com/review/session
- // @include http://www.wanikani.com/lesson/session
- // @run-at document-end
- // @grant none
- // ==/UserScript==
- /*global console, wanakana*/
- /*
- source very slightly modified from:
- https://github.com/WaniKani/WanaKana
- License: The MIT License (MIT)
- */
- (function () {
- 'use strict';
- wanakana._onInput = function (event) {
- var input, newText, normalizedInputString, range, startingCursor, startingLength;
- input = event.target;
- startingCursor = input.selectionStart;
- startingLength = input.value.length;
- normalizedInputString = wanakana._convertFullwidthCharsToASCII(input.value);
- newText = wanakana.toKana(normalizedInputString, {
- IMEMode: true
- });
- if (normalizedInputString !== newText) {
- input.value = newText;
- if (typeof input.selectionStart === "number") {
- // input.selectionStart = input.selectionEnd = input.value.length; // original line
- input.selectionStart = input.selectionEnd = startingCursor + input.value.length - startingLength;
- } else if (typeof input.createTextRange !== "undefined") {
- input.focus();
- range = input.createTextRange();
- range.collapse(false);
- range.select();
- }
- }
- };
- console.log('WaniKani Cursor Behavior: script load end');
- }());