read assist

  • /*
     * @title read assist
     * @description Enterキーで現在選択している単語の"次の単語"を選択。英文をテンポよく読むために。複雑なドキュメントでは上手く動かないかも。
     * @include http://*
     * @license MIT License
     * @require 
     */
    
    
    addEventListener("keydown", event => {
      	if (event.key != "Enter") return;
    
    	var walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT);
    	var selection = getSelection();
    
    	walker.currentNode = selection.anchorNode;
    	i = walker.currentNode.nodeValue.indexOf(" ", selection.focusOffset);
    
    	if (i == -1) {
    		while (walker.nextNode() != null && !/\S/.test(walker.currentNode.nodeValue));
        }
    
    	i += 1;
    
    	if (walker.currentNode == null) return;
    
    	j = walker.currentNode.nodeValue.indexOf(" ", i + 1); console.log(i, j);
    
    	if (j == -1) j = walker.currentNode.nodeValue.length;
    
    	selection.setBaseAndExtent(walker.currentNode, i, walker.currentNode, j);
    });
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2019/07/14 12:39:36 - 2019-07-14