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>
|
<a href="$next_url" class="chevron right" id="next-btn">›</a>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<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) {
|
document.addEventListener('keydown', function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
if (e.code === 'Space') {
|
if (e.code === 'Space') {
|
||||||
document.getElementById('next-btn').click();
|
document.getElementById('img').click();
|
||||||
} else if (e.code === 'ArrowLeft') {
|
} else if (e.code === 'ArrowLeft') {
|
||||||
document.getElementById('prev-btn').click();
|
document.getElementById('prev-btn').click();
|
||||||
} else if (e.code === 'ArrowRight') {
|
} else if (e.code === 'ArrowRight') {
|
||||||
document.getElementById('next-btn').click();
|
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>
|
</script>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user