您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Use ← or → and Ctrl to navigate to previous, next, first or last page
- // ==UserScript==
- // @name Thread Navigating by Arrow keys
- // @name:vi Thread Navigating by Arrow keys
- // @namespace https://gf.qytechs.cn/scripts/6849-thread-navigating-by-arrow-keys
- // @description Use ← or → and Ctrl to navigate to previous, next, first or last page
- // @description:vi Use ← or → and Ctrl to navigate to previous, next, first or last page
- // @author theheroofvn
- // @include /^.*(thread|forum|diendan).*$/
- // @include http://www.vn-zoom.com/*
- // @require https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js
- // @noframes
- // @grant GM_addStyle
- // @version 6.8
- // ==/UserScript==
- $(document).ready(function () {
- $(window).focus();
- function custom_site(list) {
- if (list.length === 0) return 0;
- for (var i = 0; i < list.length; i++) {
- if (location.hostname == list[i].host) {
- prev = list[i].prev;
- next = list[i].next;
- first = list[i].first;
- last = list[i].last;
- up = list[i].up;
- return 1;
- }
- }
- return 0;
- }
- function checkScriptExist(script) {
- return $('script[src*="' + script + '"]').length > 0 ? true : false;
- }
- function detect_forum() {
- if (window.location.hostname === 'forum.xda-developers.com') {
- return 'vbb';
- }
- let result = "";
- if (checkScriptExist("vbulletin")) result = "vbb";
- else if (checkScriptExist("/js/xf/")) result = "xenforo";
- else if (checkScriptExist("general.js")) result = "mybb";
- else if (checkScriptExist("forum_fn.js")) result = "phpbb";
- return result;
- }
- var prev, next, first, last, up, up_sub = '[itemtype="https://schema.org/BreadcrumbList"] a';
- var site_info = [
- {
- host: "voz.vn",
- prev: "a.pageNav-jump--prev",
- next: "a.pageNav-jump--next",
- first: ".pageNav-main>.pageNav-page:first-child>a",
- last: ".pageNav-main>.pageNav-page:last-child>a"
- }
- , {
- host: "www.webtretho.com",
- prev: "a.arrowPrePage",
- next: "a.arrowNextPage",
- first: "a.arrowFstPage",
- last: "a.arrowLstPage"
- }, {
- host: "forum.bkav.com.vn",
- prev: "a.js-pagenav-prev-button",
- next: "a.js-pagenav-next-button",
- first: "a[data-page='1']",
- last: "a.js-pagenav-button:nth-last-child(2)",
- up: "#breadcrumbs a.crumb-link"
- }
- ];
- if (custom_site(site_info) === 0) {
- switch (detect_forum()) {
- case 'vbb':
- prev = 'a[rel="prev"]';
- next = 'a[rel="next"]';
- first = 'a[rel="start"], a[rel="first"]';
- last = 'a[title^="Last"], a[title*="uối"]';
- up = "span.navbar a, li.navbit a";
- break;
- case 'xenforo':
- prev = "a.pageNav-jump--prev";
- next = "a.pageNav-jump--next";
- last = ".pageNav-main > .pageNav-page:last-child > a";
- first = '.pageNav-main > .pageNav-page:first-child > a';
- // up = ".p-breadcrumbs";
- break;
- case 'mybb':
- prev = "a.pagination_previous";
- next = "a.pagination_next";
- first = "a.pagination_first";
- last = "a.pagination_last";
- up = ".navigation > a";
- break;
- case 'phpbb':
- prev = ".display-options a.left-box.left";
- next = ".display-options a.right-box.right";
- first = ".pagination > span > a:first-child";
- last = ".pagination > span > a:last-child";
- up = ".navlinks > .icon-home a";
- break;
- default:
- return;
- }
- }
- var nav = {
- prev: function () {
- return $(prev);
- },
- next: function () {
- return $(next);
- },
- first: function () {
- if ($(first).length > 0) {
- return $(first);
- } else {
- var $prev = $(prev).first();
- if ($prev) {
- $prev.attr('href', function (_, value) {
- return value.replace(/page=\d+/, 'page=1');
- });
- return $prev;
- } else {
- return $();
- }
- }
- },
- last: function () {
- if ($(last).length > 0) {
- return $(last);
- } else {
- var $next = $(next).first();
- if ($next) {
- $next.attr('href', function (_, value) {
- return value.replace(/page=\d+/, 'page=9999');
- });
- return $next;
- } else {
- return $();
- }
- }
- },
- up: function () {
- return $(up).length > 0 ? $(up).last() : $(up_sub).last();
- }
- };
- var allowed = true;
- $(document).keydown(function (e) {
- if (!allowed) {
- return;
- }
- allowed = false;
- var key = e.keyCode,
- action = null;
- if (e.ctrlKey) {
- allowed = true;
- if (key == 39) action = "last";
- else if (key == 37) action = "first";
- else if (key == 8) action = "up";
- } else if (key == 39) {
- action = "next";
- } else if (key == 37) {
- action = "prev";
- } else {
- return;
- }
- if (!action || e.target.tagName == "INPUT" || e.target.tagName == "TEXTAREA" || e.target.isContentEditable) {
- return;
- }
- var $anchor = nav[action]();
- if ($anchor.length) {
- window.location.href = $anchor[0].href;
- }
- }).keyup(function (e) {
- allowed = true;
- });
- });
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址