足跡を表示するUserScript
試してみる
2020-09-02 18:38:24 reloadが正常にできないバグがあるので一旦外した
2020-09-02 15:33:32 ためした。なかなか良さそう
太字(=現在地)はクリックできない
script.js(history => {
// 表示する履歴の数
const maxHistory = 5;
if ($('#history-box').length) { return; }
const $header = $(".quick-launch");
$header.append($(`<div class='flex-box'>
<div class='flex-item'>
<div class='left-box' id='history-box' />
</div></div>`));
const $historyHolder = $("#history-box");
function pathToPageTitle(path) {
return decodeURIComponent(path.split("/")[2]);
}
let pushState = history.pushState;
history.pushState = state => {
try {
// on history change
var pageTitle = pathToPageTitle(state.path);
if (pageTitle) {
let $newHistory = $(`<span> > <a href='${state.path}'>${pageTitle}</a></span>`);
$newHistory.on("click", () => { $newHistory.remove(); });
$historyHolder.append($newHistory);
if ($historyHolder.children().length > maxHistory) {
$historyHolder.children().first().remove();
}
}
} catch (x) {
console.error(x);
}
return pushState.apply(history, arguments);
};
})(window.history);
style.css#history-box span {
margin: 0 3px;
}
#history-box span:last-child {
font-weight: bold;
pointer-events: none;
cursor: default;
}