mobile01.com 键盘浏览

用方向键 [← / a] 切换前一页,[→ / d] 切换次一页,[↓ / s] 退回外层分类。右上角加入 [我的文章/我的市集] 连结。

当前为 2020-09-07 提交的版本,查看 最新版本

// ==UserScript==
// @name         mobile01.com - navigate with keyboard
// @name:zh-TW   mobile01.com 鍵盤瀏覽
// @name:zh-CN   mobile01.com 键盘浏览
// @description:en    press keyboard [← / a] to the previous page, [→ / d] to the next page, [↓ / s] back to parent classification. Add [My Article/My Market] to the top right corner.
// @description:zh-TW 用方向鍵 [← / a] 切換前一頁,[→ / d] 切換次一頁,[↓ / s] 退回外層分類。右上角加入 [我的文章/我的市集] 連結。
// @description:zh-CN 用方向键 [← / a] 切换前一页,[→ / d] 切换次一页,[↓ / s] 退回外层分类。右上角加入 [我的文章/我的市集] 连结。
// @namespace    https://gf.qytechs.cn/zh-TW/users/393133-evan-tseng
// @author       Evan Tseng
// @version      1.06
// @match        *.mobile01.com/*
// @grant        none
// @description press keyboard [← / a] to the previous page, [→ / d] to the next page, [↓ / s] back to parent classification. Add "My Article" to the top right corner.
// ==/UserScript==

(function() {
	'use strict';
	var myLink = (function(){
		var	elm=null;
		if(document.querySelector(".l-header__main")){
			setTimeout(function(){
				if(elm=document.querySelector(".l-signedIn")){
					// 登入後,畫面右上角顯示[我的文章]連結
					var css=`._myLink{display:inline-block;white-space:nowrap;height:1em;font-size:calc(9pt + .25vw);text-align:center;padding:.3em;line-height:1;margin:calc(.6em - .4vw) 1mm 1px;color:#f3f3f3;background:#30A651;border-radius:5pt;text-shadow:0 0 1px #000;box-shadow:inset 0 0 0 1px #30A651,inset 0 0 0 2px #ebeae7;transition:.2s}
._myLink:hover{color:#f3f3f3;background:#23803d;box-shadow:inset 0 0 0 1px #3a5,inset 0 0 0 2px #fff, 0 1px 4px rgba(0,0,0,.4);transition:60ms}
._myLink:active{color:#fff;background:#23803d;margin:calc(.6em - .4vw + 1px) 1mm 0;box-shadow:inset 0 0 0 1px #3a5,inset 0 0 0 2px #ccc,inset 0 0 5px #000;transition:0s}`,
						cssStyle=document.createElement('style');
					if(cssStyle.styleSheet) cssStyle.styleSheet.cssText=css;
					else cssStyle.appendChild(document.createTextNode(css));
					document.querySelector('head').appendChild(cssStyle);
					var currPos = document.querySelector(".l-header .l-header__left>a").getAttribute("href"),
						myArticle=document.createElement('a');
					myArticle.setAttribute("class","_myLink");
					if(currPos == "/marketindex.php") {
						myArticle.appendChild(document.createTextNode("我的市集"));
						myArticle.setAttribute("href","/mypurchaselist.php");
						myArticle.setAttribute("title","我的市集");
					}
					else {
						myArticle.appendChild(document.createTextNode("我的文章"));
						myArticle.setAttribute("href","/participatetopics.php");
						myArticle.setAttribute("title","我的文章");
					}
					elm.appendChild(myArticle);
					// 移除指向本頁的連結
					elm=document.querySelectorAll(".l-pagination__page.is-active>a, .c-filter a.c-iconLink--gn");
					for(let i in elm) if(elm[i].tagName=="A") elm[i].removeAttribute("href");
				}}, 200);
		}
		else setTimeout(myLink, 1000);
	})();

	var fnKey = { shift: false, ctrl:false, alt:false, meta:false };
	window.onfocus = function() { fnKey.shift = fnKey.ctrl = fnKey.alt = fnKey.meta = false; }

	document.addEventListener("keyup", function(e) {
		e = e || window.event;
		switch(e.which || e.keyCode) {
			case 16: // shift
				fnKey.shift = false;
				break;
			case 17: // ctrl
				fnKey.ctrl = false;
				break;
			case 18: // alt
				fnKey.alt = false;
				break;
			case 91: // left Meta
			case 93: // right Meta
				fnKey.meta = false;
				break;
		}
	});

	document.addEventListener("keydown", async function(e) {
		if(document.querySelector("input:focus, textarea:focus") || (fnKey.shift | fnKey.ctrl | fnKey.alt | fnKey.meta)) return;
		e = e || window.event;
		try{
			switch(e.which || e.keyCode) {
				case 16: // shift
					fnKey.shift = true;
					break;
				case 17: // ctrl
					fnKey.ctrl = true;
					break;
				case 18: // alt
					fnKey.alt = true;
					break;
				case 91: // left Meta
				case 93: // right Meta
					fnKey.meta = true;
					break;
				case 40: // down
				case 83: // 's'
					if(window.location.href.match(/\/topicdetail\.php\?/i))	document.querySelector(".c-breadCrumb__item:last-child a").click();
					else	document.querySelector(".c-breadCrumb__item:nth-last-of-type(-n+2) a").click();
					break;
				case 65: // 'a'
				case 37: // ArrowLeft
					document.querySelector(".l-pagination__page.is-active").previousSibling.querySelector("a.c-pagination").click();
					break;
				case 68: // 'd'
				case 39: // ArrowRight
					document.querySelector(".l-pagination__page.is-active").nextSibling.querySelector("a.c-pagination").click();
					break;
			}
		} catch(e){ console.log(e); }
	});

})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址