Instagram: Arrow Key Navigation for Multi-Image Posts

Make the right/left keys go to the next/previous image in a multi-image post, then on to the adjacent post. While holding shift, right/left will jump directly between posts

当前为 2024-01-18 提交的版本,查看 最新版本

// ==UserScript==
// @name         Instagram: Arrow Key Navigation for Multi-Image Posts
// @description  Make the right/left keys go to the next/previous image in a multi-image post, then on to the adjacent post. While holding shift, right/left will jump directly between posts
// @match        https://www.instagram.com/*
// @version      0.3
// @namespace    greasyfork.org/users/12559
// @license      MIT
// ==/UserScript==

let nextBtns;
let backBtns;
document.addEventListener('keydown', (event) => {
    event.stopPropagation();
    if (event.shiftKey && event.key === 'ArrowRight') {
        document.querySelector('svg[aria-label="Next"]').closest('button').click();
    } else if (event.key === 'ArrowRight') {
        if (document.querySelectorAll('button[aria-label="Next"]').length === 1 && nextBtns === 2) {
            document.querySelector('svg[aria-label="Next"]').closest('button').click();
        } else if (document.querySelectorAll('button[aria-label="Next"]').length === 1) {
            document.querySelector('button[aria-label="Next"]').click();
        } else if (document.querySelectorAll('button[aria-label="Next"]').length === 2) {
            document.querySelectorAll('button[aria-label="Next"]')[1].click();
            nextBtns = 2;
        } else {
            document.querySelector('svg[aria-label="Next"]').closest('button').click();
        }
    } else if (event.shiftKey && event.key === 'ArrowLeft') {
        document.querySelector('svg[aria-label="Go Back"]').closest('button').click();
    } else if (event.key === 'ArrowLeft') {
        if (document.querySelectorAll('button[aria-label="Go Back"]').length === 1 && backBtns === 2) {
            document.querySelector('svg[aria-label="Go Back"]').closest('button').click();
        } else if (document.querySelectorAll('button[aria-label="Go Back"]').length === 1) {
            document.querySelector('button[aria-label="Go Back"]').click();
        } else if (document.querySelectorAll('button[aria-label="Go Back"]').length === 2) {
            document.querySelectorAll('button[aria-label="Go Back"]')[1].click();
            backBtns = 2;
        } else {
            document.querySelector('svg[aria-label="Go Back"]').closest('button').click();
        }
    }
}, true);