generated at
key boardだけでpage遷移
2020-12-24 12:07:33 ScrapBindingsの一機能として組み込めるようにした
このページのコードはめんどくさいのでメンテナンスしません
そもそも実装が雑だし回りくどいし
気が向いたらするかも
2021-01-27 08:09:35 動かないとの報告があったので直しました
hr

動機
/forum-jp/キーボードだけでリンク遷移をしたいで動かないのでなんとかしたいという要望があった

実装
cursorがあるlinkを抽出
LinkObserverの処理を使えばいい
key入力
Mousetrapを使う

使い方
以下を自分のページの script.js に書く
js
import '/api/code/takker/key_boardだけでpage遷移/install.js';

作ってみようtakker
2020-11-12 01:05:56 できた
スクロールせずに見える領域の外でも使えるっぽい
install.js
// Mousetrap.jsをinstallする // 別のscriptでinstallしている場合は削って大丈夫です import {installMousetrap} from '/api/code/takker/scrapbox-mousetrap-installer/script.js'; installMousetrap(); // 本体をinstallする const oldScript = document.getElementById('scrapbox-click-link'); oldScript?.parentNode?.removeChild?.(oldScript); const clickLinkScript = document.createElement("script"); clickLinkScript.src = '/api/code/takker/key_boardだけでpage遷移/script.js'; clickLinkScript.id = 'scrapbox-click-link'; clickLinkScript.type = 'module'; document.body.appendChild(clickLinkScript);
2020-12-14 01:19:58 これscrapbox-install-CDNを使って書き直したほうがいいかなあtakker
そこまでする気は起きないが
というか、これを作り変えるよりScrapVimに同様の機能を埋め込みたい

script.js
import {getLinkIncludingCursor} from '/api/code/takker/Scrapboxでcursor下のリンクを取得する/script.js'; const command = 'ctrl+s'; const mousetrapOnEdit = new Mousetrap(document.getElementById('editor'));

script.js
mousetrapOnEdit.bind(command, clickLinkUnderCursor); console.log('Finish setting for Mousetrap.');

リンククリックの機能のコア部分
Scrapboxでcursor下のリンクを取得する機能を使用しているだけです
script.js
function clickLinkUnderCursor() { const targetLink = getLinkIncludingCursor(); if (!targetLink) { console.log('No link found.'); return; } console.log('Target link: %o', targetLink); targetLink.click(); }

#2021-01-29 17:29:48
#2021-01-27 08:11:01
#2020-12-24 12:08:07
#2020-12-14 01:21:07