キーボードだけでページ遷移
/cdn/注意.icon 🔴Macでは動きません・・・
アイコンは、 rocket.icon
code:ショートカットキーでページ遷移.js
(function () {
scrapbox.PageMenu.addMenu({
title: 'ホットキーでページ遷移',
onClick: () => {
scrapbox.PageMenu('ホットキーでページ遷移').removeAllItems()
/* デフォルトの「Ctrl+S」を無効にする */
document.onkeydown = function (e)
{
e = e || window.event; /* Get event */
console.log(e.ctrlKey);
if (e.ctrlKey) {
var c = e.which || e.keyCode; /* Get key code */
switch (c) {
case 83: /* Block Ctrl+S */
case 87: /* Block Ctrl+W --Not work in Chrome */
e.preventDefault();
e.stopPropagation();
/* console.log('🔵Ctrl_Sが押されました'); */
let x = parseInt($('.cursor').offset().left);
let y = parseInt($('.cursor').offset().top);
/* console.log( '$(".cursor").offset() = ' + parseInt(x)+ ', ' + parseInt(y)); */
var elm = document.elementFromPoint(x, y);
/* console.log(elm); */
/* 🔴【前提】タグもしくは内部リンク上で「Ctrl+S」を押す */
console.log('elm.tagName = '+ elm.tagName);
if(elm.tagName.toLowerCase()=='span'){
/* 孫要素のa要素をクリック */
elm.querySelector('a').click();
}else{ /* span以外は基本、「a」なはず */
/* document.elementFromPoint(x, y).click(); */
elm.click();
}
setTimeout(function(){
/* キャレットの表示される!! */
$('.cursor').css('display','');
},1000);
return;
}
}
};
}
})
})()