Memrise, click answer by pressing key number

Select the right answer by simply clicking Number key

当前为 2020-03-28 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Memrise, click answer by pressing key number
// @name:zh-TW   Memrise, 按數字鍵快速選答案
// @namespace    https://blog.newtchen.me/
// @version      1.0
// @description  Select the right answer by simply clicking Number key
// @description:zh-TW  用數字鍵選擇正確答案
// @author       YU-HSIN, CHEN
// @match        https://www.memrise.com/course/*
// @grant        none
// @license      MIT
// ==/UserScript==

(function () {
  'use strict'
  var KEYDOWN = 'keydown'

  function _getKeyNumber (e) {
    var keyNumber = Number(e.key)
    return isNaN(keyNumber) ? null : keyNumber
  }

  function _getChoiceId (keyNumber) {
    return '[data-choice-id="' + (keyNumber - 1) + '"]'
  }

  function keydownHandler (e) {
    var keyNumber = _getKeyNumber(e)
    if (keyNumber > 0 && keyNumber < 10) {
      document.querySelector(_getChoiceId(keyNumber)).click()
    }
  }

  document.addEventListener(KEYDOWN, keydownHandler)
})()