FlowMouseのジェスチャーでWebサイトの上の階層(親ディレクトリ)に移動できるようにします / Enables FlowMouse gesture to navigate up to the parent directory.
// ==UserScript==
// @name FlowMouse Parent Directory
// @namespace http://tampermonkey.net/
// @version 1.0
// @description FlowMouseのジェスチャーでWebサイトの上の階層(親ディレクトリ)に移動できるようにします / Enables FlowMouse gesture to navigate up to the parent directory.
// @description:ja FlowMouseのジェスチャーでWebサイトの上の階層(親ディレクトリ)に移動できるようにします。
// @description:en Enables FlowMouse gesture to navigate up to the parent directory on any website.
// @author 愛
// @match *://*/*
// @grant none
// @run-at document-start
// @license MIT
// ==/UserScript==
(function () {
'use strict';
console.log('[FlowMouse] Script Loaded');
// =========================
// 上階層へ移動処理
// =========================
function goUpDirectory() {
const url = new URL(location.href);
let path = url.pathname.replace(/\/$/, '');
// 既にルートなら停止
if (path === '') {
return;
}
const lastSlash = path.lastIndexOf('/');
// 一つ上へ
path = path.substring(0, lastSlash + 1);
// 空防止
if (path === '') {
path = '/';
}
url.pathname = path;
location.href = url.toString();
}
// =========================
// window
// =========================
window.addEventListener('flowmouse:up-directory', goUpDirectory);
// =========================
// document
// =========================
document.addEventListener('flowmouse:up-directory', goUpDirectory);
// =========================
// body
// =========================
document.body?.addEventListener?.('flowmouse:up-directory', goUpDirectory);
})();