Add keyboard navigation for refresh mode.
This commit is contained in:
parent
143c8563de
commit
c57c37ffb9
@ -47,14 +47,45 @@
|
||||
<a href="$next_url" class="chevron right" id="next-btn">›</a>
|
||||
</div>
|
||||
<script>
|
||||
function updateMetaRefresh(newDelay, newUrl) {
|
||||
var metaRefresh = document.querySelector('meta[http-equiv="refresh"]');
|
||||
if (metaRefresh) {
|
||||
metaRefresh.setAttribute('content', newDelay + ';url=' + newUrl);
|
||||
}
|
||||
}
|
||||
|
||||
function getRefreshParams() {
|
||||
var metaRefresh = document.querySelector('meta[http-equiv="refresh"]');
|
||||
if (!metaRefresh) return null;
|
||||
var content = metaRefresh.getAttribute('content');
|
||||
return {
|
||||
delay: parseInt(content.split(';')[0].trim()),
|
||||
url: content.split('url=')[1]
|
||||
};
|
||||
}
|
||||
|
||||
document.addEventListener('keydown', function(e) {
|
||||
e.preventDefault();
|
||||
if (e.code === 'Space') {
|
||||
document.getElementById('next-btn').click();
|
||||
document.getElementById('img').click();
|
||||
} else if (e.code === 'ArrowLeft') {
|
||||
document.getElementById('prev-btn').click();
|
||||
} else if (e.code === 'ArrowRight') {
|
||||
document.getElementById('next-btn').click();
|
||||
} else if (e.code === 'Equal') {
|
||||
var params = getRefreshParams();
|
||||
if (params) updateMetaRefresh(params.delay + 1, params.url);
|
||||
} else if (e.code === 'Minus') {
|
||||
var params = getRefreshParams();
|
||||
if (params && params.delay > 1) updateMetaRefresh(params.delay - 1, params.url);
|
||||
} else if (e.key.toLowerCase() === 'o') {
|
||||
var params = getRefreshParams();
|
||||
if (params) {
|
||||
var newOrder = params.url.split('/')[1] === 'next' ? 'random' : 'next';
|
||||
var newUrl = params.url.replace('/' + (newOrder === 'next' ? 'next' : 'random') + '/', '/' + newOrder + '/');
|
||||
updateMetaRefresh(params.delay, newUrl);
|
||||
window.location.href = newUrl;
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user