Greasy Fork

来自缓存

Greasy Fork is available in English.

『自用』微调网页合集

更改B站视频播放页面(tab)标题,更改B站播放控件大小,展开 AutoHotkey论坛帖子代码框,Material Design2去掉顶部悬浮推荐,重定向淘宝主页到购物车,移除 Github页面的CSK快捷键,百度bing翻译页面添加切换语言快捷键CtrlShiftS,CSDN vip文章高亮居中显示大字VIP文本,有道云笔记编辑器去除推广

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         『自用』微调网页合集
// @license      MIT
// @namespace    http://tampermonkey.net/
// @version      1.0.3
// @description  更改B站视频播放页面(tab)标题,更改B站播放控件大小,展开 AutoHotkey论坛帖子代码框,Material Design2去掉顶部悬浮推荐,重定向淘宝主页到购物车,移除 Github页面的CSK快捷键,百度bing翻译页面添加切换语言快捷键CtrlShiftS,CSDN vip文章高亮居中显示大字VIP文本,有道云笔记编辑器去除推广
// @author       CandyTek
// @homepageURL  http://greasyfork.icu/zh-CN/scripts/460556
// @supportURL   http://greasyfork.icu/zh-CN/scripts/460556/feedback
// @match        *://*.bilibili.com/list/*
// @match        *://*.bilibili.com/video/*
// @match        *://*.bilibili.com/watchlater/*
// @match        *://*.bilibili.com/bangumi/play/*
// @match        *://*.bilibili.com/medialist/play/*
// @match        *://blog.csdn.net/*
// @match        *://*.autohotkey.com/boards/*
// @match        *://m2.material.io/*
// @match        *://taobao.com/
// @match        *://www.taobao.com/
// @match        *://github.com/*
// @match        *://*.github.com/*
// @match        *://fanyi.baidu.com/*
// @match        *://note.youdao.com/web/*
// @match        *://*.bing.com/translator*
// @run-at       document-start
// @icon         data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZyBmaWxsPSJAYW5kcm9pZDpjb2xvci93aGl0ZSI+PHBhdGggZD0ibTIxLjcgMTguMi01LjMtNS4zaC0xbC0yLjYgMi41djFsNS4zIDUuM2MuNC40IDEgLjQgMS40IDBsMi4yLTIuMWMuNC0uNC40LTEgMC0xLjR6Ii8+PHBhdGggZD0ibTE3LjMgMTAuMiAxLjQtMS40IDIuMiAyLjFhMyAzIDAgMCAwIDAtNC4yTDE3LjMgMyAxNiA0LjVWMS43bC0uNy0uNy0zLjUgMy41LjcuOGgyLjhsLTEuNCAxLjQgMSAxLTIuOCAzLTQuMi00LjJWNWwtMy0zTDIgNC44bDMgM2gxLjRsNC4yIDQuMS0uOS45SDcuNmwtNS4zIDUuM2ExIDEgMCAwIDAgMCAxLjRsMi4xIDIuMWMuNC40IDEgLjQgMS40IDBsNS4zLTUuM3YtMi4xTDE2LjMgOWwxIDF6Ii8+PC9nPjwvc3ZnPg==
// @grant        GM_addStyle
// @grant        GM_registerMenuCommand
// @grant        GM_getValue
// @grant        GM_setValue
// ==/UserScript==

// 获取用户输入的文本,是表示 true 还是 false
function getTrueOrFalse(name){
	return !(name==="不" || name==="否" || name==="0" || name==="false" || name==="no" || name==="not" || name==="不移除" || name==="非" || name==="f" || name==="nul" || name==="null" || name==="n");
}
// 获取用户脚本保存配置参数 true or false,并添加设置菜单
function GetPrefBoolean(prefTitle,prefKey,defaultValue){
	GM_registerMenuCommand(prefTitle, function() {
		const name = prompt("是否" + prefTitle + "?(true  false)", GM_getValue(prefKey,defaultValue)).toLowerCase();
		GM_setValue(prefKey,getTrueOrFalse(name));
		location.reload();
	});
	return GM_getValue(prefKey,defaultValue);
}

(function() {

const isNeedChangeBilibiliTitle = GetPrefBoolean("更改B站播放页面标题","pref_is_change_bilibili_title",false);
const isNeedChangeBilibiliPlayerSize = GetPrefBoolean("更改B站播放控件大小","pref_is_change_bilibili_player_size",false);
const isNeedTaobaoReplaceUrl = GetPrefBoolean("重定向淘宝至个人淘宝页面","pref_is_taobao_replace_url",true);
const isNeedShowCsdnVip = GetPrefBoolean("高亮显示CSDN vip文章","pref_show_csdn_vip",true);

// 匹配域名,并运行小脚本
const hostname = window.location.hostname;
if(hostname.includes("bilibili")){
	if(isNeedChangeBilibiliTitle){changeBilibiliVideoTitle();}
	if(isNeedChangeBilibiliPlayerSize){changeBilibiliVideoWidgetSize();}
}else if(hostname.includes("autohotkey")){
	// 强行展开AutoHotkey论坛帖子代码框
	GM_addStyle(`code.language-autohotkey{height: auto !important;}`);
}else if(hostname.includes("material")){
	// Material Design2 去掉顶部推荐,把顶栏压扁一些
	GM_addStyle(`mio-communication-banner{display: none !important;}header{height: 50px !important; }`);
}else if(hostname.includes("taobao")){
	// 重定向淘宝主页到个人淘宝页面
	if(isNeedTaobaoReplaceUrl){window.location.replace("https://cart.taobao.com/");}
}else if(hostname.includes("github")){
	githubRemoveHotkeyCSK()
}else if(hostname.includes("baidu")){
	baiduFanyi();
}else if(hostname.includes("bing")){
	bingFanyi();
}else if(hostname.includes("csdn")){
	if(isNeedShowCsdnVip){csdnHightlightVip();}
}else if(hostname.includes("note.youdao")){
	youdaoNoteRemoveAd();
}


/** 更改B站视频播放页面(tab)标题 */
function changeBilibiliVideoTitle() {
	// 摸鱼标题字符串数组
	const moyuTitleArr = [
		"Android 截屏实现的几种方式_android adb 截图_jun_tong的博客-CSDN博客",
		"Android Caused by: java.net.SocketException: Connection reset",
		"Android:获取 Resources$NotFoundException for abc_ic_ab_back_material - Stack Overflow",
		"android内存泄露:2、非静态的内部类错误使用_情形2_mkeyedtags in constraintlayout 泄漏_华哥折腾历险记的博客-CSDN博客",
		"android recyclerview滑动删除 android recyclerview item动画_clghxq的技术博客_51CTO博客"
	];

	// 随机获取数组中的一个值
	const randomIndex = Math.floor(Math.random() * moyuTitleArr.length);
	const randomTitle = moyuTitleArr[randomIndex];

	window.addEventListener('load', setMoyuTitle);
	setTimeout(setMoyuTitle, 2000);
	setTimeout(setMoyuTitle, 5000);
	setTimeout(setMoyuTitle, 10000);

	// 更改网页标题
	function setMoyuTitle(){
		document.title = randomTitle;
	}
}

/** 更改B站视频控件大小,强制1080px,(2K屏时使用) */
function changeBilibiliVideoWidgetSize() {
	const css1 = `
	@media screen and (min-width: 2000px) {
		div.text-info{display: none !important;}
		div.bili-header__bar.mini-header{padding-right: 120px !important;}

		div.bpx-player-video-area{
		max-width: 1920px !important;
		max-height: 1080px !important;
		}
		div.bpx-player-container{
		max-width: 1922px !important;
		}
	}
	`
	GM_addStyle(css1);
}

/** 移除所有 Github 页面的 Ctrl + Shift + K 快捷键占用 */
function githubRemoveHotkeyCSK() {
  document.addEventListener('keydown', function(event) {
        if (event.ctrlKey && event.shiftKey && event.key.toLowerCase() === 'k') {
			event.stopImmediatePropagation();
        }
    }, true);
}

/** 百度翻译,添加语音掉转,快捷键 */
function baiduFanyi(){
	document.addEventListener("keydown", function(event) {
		if (event.ctrlKey && event.shiftKey && event.key === "S") {
			document.querySelector(".from-to-exchange").click();
		}
	});
}

/** Bing翻译,添加语音掉转,快捷键 */
function bingFanyi(){
	document.addEventListener("keydown", function(event) {
		if (event.ctrlKey && event.shiftKey && event.key === "S") {
			document.querySelector("#tta_revIcon").click();
		}
	});
}

/** 给网页添加悬浮中间,高亮元素 */
function addFloatingTipsView(text){
	const css1=`
		#floatingDiv {
		position: fixed;
		z-index: 1000;  /* 设置 z 轴高度为 1000 */
		height:0px;
		top:calc(50vh - 60px);       /* 距离顶部 40% 的位置,垂直居中 */
		left: 5%;      /* 距离左侧 40% 的位置,水平居中 */
		line-height:120px;
		font-size:120px;
		color:#888;
		}
	`
	// 添加高亮元素
	GM_addStyle(css1);
	var floatingDiv = document.createElement("a");
	floatingDiv.id = "floatingDiv";
	floatingDiv.innerText=text;
	document.body.appendChild(floatingDiv);
}

/** 在CSDN vip文章里,高亮显示VIP文本,提醒自己以免浪费浏览时间 */
function csdnHightlightVip() {
window.addEventListener('DOMContentLoaded', function() {
	var divElements2 = document.querySelectorAll('a.bt-subscribe-article');
	// 遍历匹配的元素并检查其文本内容
	divElements2.forEach(function(div) {
		if (div.textContent.trim() === "订阅专栏 解锁全文") {
			addFloatingTipsView("此文为专栏文章!");
			return;
		}
	});

	// 获取具有指定类名的 div 元素
	var divElements = document.querySelectorAll('.vip_article');
	// 遍历匹配的元素并检查其文本内容
	divElements.forEach(function(div) {
		if (div.textContent.trim() === "VIP文章") {
			addFloatingTipsView("此文为VIP文章!");
			return;
		}
	});
});
}

/** 有道云笔记,编辑器,去除推广 */
function youdaoNoteRemoveAd() {
window.addEventListener('DOMContentLoaded', function() {
	const css1 = `
	ad-component{display:none !important;}
	upgrade-v1-hint{display:none !important;}
	.list-bd.adList {top:72px !important;}
	.detail.adBar {margin-top:-36px !important;}
	`;
	GM_addStyle(css1);

});
}

})();