Pukiwiki Focus Menu

Pukiwikiのメニューバーを移動するやつ

スクリプトをインストールするには、Tampermonkey, GreasemonkeyViolentmonkey のような拡張機能のインストールが必要です。

You will need to install an extension such as Tampermonkey to install this script.

スクリプトをインストールするには、TampermonkeyViolentmonkey のような拡張機能のインストールが必要です。

スクリプトをインストールするには、TampermonkeyUserscripts のような拡張機能のインストールが必要です。

このスクリプトをインストールするには、Tampermonkeyなどの拡張機能をインストールする必要があります。

このスクリプトをインストールするには、ユーザースクリプト管理ツールの拡張機能をインストールする必要があります。

(ユーザースクリプト管理ツールは設定済みなのでインストール!)

このスタイルをインストールするには、Stylusなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus などの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus tなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

(ユーザースタイル管理ツールは設定済みなのでインストール!)

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
// ==UserScript==
// @name         Pukiwiki Focus Menu
// @description  Pukiwikiのメニューバーを移動するやつ
// @version      0.1
// @match        https://www.icd.cs.tut.ac.jp/pukiwiki/*
// @require      http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
// @namespace https://greasyfork.org/users/167332
// ==/UserScript==

$(window).on('keydown', function(e) {
    if(e.keyCode == 73 && !e.shiftKey && !e.ctrlKey && e.altKey && !e.metaKey) { // Alt + I
        focus_prev();
        return false;
    }
    if(e.keyCode == 75 && !e.shiftKey && !e.ctrlKey && e.altKey && !e.metaKey) { // Alt + K
        focus_next();
        return false;
    }
});

/**
 * フォーカスを前に移動する
 */
function focus_prev() {
    // 現在のフォーカスを取得
    var currentFocusIndex = $('div#menubar a').index($(':focus'));

    if(currentFocusIndex > -1) {
        for (var i = 0; i < $('div#menubar a').length; i++) {
            if(i === currentFocusIndex && i > 0) {
                $('div#menubar a').eq(i - 1).focus();
            }
        }
    }
}

/**
 * フォーカスを次に移動する
 */
function focus_next() {
    // 現在のフォーカスを取得
    var currentFocusIndex = $('div#menubar a').index($(':focus'));

    if(currentFocusIndex > -1) {
        for (var i = 0; i < $('div#menubar a').length; i++) {
            if(i === currentFocusIndex && i < $('div#menubar a').length - 1) {
                $('div#menubar a').eq(i + 1).focus();
            }
        }
    } else {
        $('div#menubar a').eq(0).focus();
    }
}