您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Browse screenshots without browser history entries
- // ==UserScript==
- // @name MobyGames screenshot carousel
- // @version 1.0
- // @description Browse screenshots without browser history entries
- // @author raina
- // @license GPLv3
- // @namespace raina
- // @match https://www.mobygames.com/game/*/*/screenshots/gameShotId,*
- // @grant none
- // ==/UserScript==
- (function() {
- const wrapper = document.getElementById(`wrapper`);
- let prev, next;
- const flipPage = function(ev) {
- let href = ev.currentTarget.href;
- if (ev.shiftKey || ev.ctrlKey) return true;
- ev.preventDefault();
- if (/#$/.test(href)) return false;
- fetch(href)
- .then(response => response.text())
- .then(content => {
- history.replaceState({}, ``, href);
- content = content.replace(/.*<div id="wrapper"[^\n]*>/s, ``).replace(/<\/div>\s*<div id="footer.*/s, ``);
- wrapper.innerHTML = content;
- rigClicks();
- });
- };
- const rigClicks = function() {
- prev = document.querySelector(`li.previous a`);
- next = document.querySelector(`li.next a`);
- [prev, next].forEach(butt => butt.addEventListener("click", flipPage));
- };
- rigClicks();
- addEventListener("keyup", ev => {
- if ("ArrowLeft" != ev.key && "ArrowRight" != ev.key) return true;
- let click = new MouseEvent("click", {button: 0, cancelable: true});
- if ("ArrowLeft" == ev.key) prev.dispatchEvent(click);
- else next.dispatchEvent(click);
- });
- }());