您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds a mod menu to Google Classroom for customization options like active teacher mode, dark mode, custom background, and more.
当前为
// ==UserScript== // @name Google Classroom Mod Menu // @namespace http://tampermonkey.net/ // @version 0.3 // @description Adds a mod menu to Google Classroom for customization options like active teacher mode, dark mode, custom background, and more. // @author Iron web10 // @match https://classroom.google.com/* // @grant GM_addStyle // @license Iron web10 2024 // ==/UserScript== (function() { 'use strict'; // Dark mode styles const darkModeStyles = ` body { background: #2c2c2c; color: #fff; } .Tabkde .OX4Vcb { background-color: #3c3c3c; } .rpo4wf-J3yWx { color: #fff; } .z3vRcc-J3yWx { color: #fff; } .xSP5ic:not([disabled]), .xSP5ic:not([disabled]).yHy1rc { color: #fff; } .mwJvDe .KEDCCd { color: #3c3c3c; } .ee1HBc .LgeCif.LgeCif:disabled { color: #fff; } .z80M1 { color: #fff; } .z80M1.FwR7Pc { background-color: #4d4d4d; } .mwJvDe .KEDCCd { background-color: #3c3c3c; } .xVPuB .Aworge, .vnnr5e .Aworge { color: #fff; } .xVPuB .snByac, .vnnr5e .snByac { color: #fff; } .xWw7yd:hover .asQXV { color: black; } .xWw7yd:hover .IMvYId { color: #444; } .gb_Pa svg, .gb_Tc svg, .gb_fd .gb_od, .gb_5c .gb_od { color: #fff; } .ReCbLb:not(.VfPpkd-O1htCb-OWXEXe-OWB6Me).VfPpkd-O1htCb-OWXEXe-XpnDCe .VfPpkd-t08AT-Bz112c { color: #fff; } .ReCbLb:not(.VfPpkd-O1htCb-OWXEXe-OWB6Me) .VfPpkd-uusGie-fmcmS { color: #fff; } .VfPpkd-xl07Ob .VfPpkd-StrnGf-rymPhb, .VfPpkd-xl07Ob .VfPpkd-rymPhb { background-color: #3c3c3c; } .s8kOBc .VfPpkd-rymPhb-fpDzbe-fmcmS { color: #fff; } .s8kOBc .VfPpkd-rymPhb-ibnC6b-OWXEXe-gk6SMd .VfPpkd-rymPhb-fpDzbe-fmcmS, .s8kOBc .VfPpkd-rymPhb-ibnC6b-OWXEXe-pXU01b .VfPpkd-rymPhb-fpDzbe-fmcmS, .s8kOBc .VfPpkd-rymPhb-ibnC6b-OWXEXe-gk6SMd.VfPpkd-rymPhb-ibnC6b-OWXEXe-SfQLQb-M1Soyc-Bz112c .VfPpkd-rymPhb-KkROqb, .s8kOBc .VfPpkd-rymPhb-ibnC6b-OWXEXe-pXU01b.VfPpkd-rymPhb-ibnC6b-OWXEXe-SfQLQb-M1Soyc-Bz112c .VfPpkd-rymPhb-KkROqb { color: #fff; } .s8kOBc .VfPpkd-rymPhb-ibnC6b.VfPpkd-rymPhb-ibnC6b-OWXEXe-gk6SMd { background-color: #4d4d4d; } .ReCbLb:not(.VfPpkd-O1htCb-OWXEXe-OWB6Me) .VfPpkd-uusGie-fmcmS { color: #fff; } .ReCbLb:not(.VfPpkd-O1htCb-OWXEXe-OWB6Me).VfPpkd-O1htCb-OWXEXe-XpnDCe .VfPpkd-t08AT-Bz112c { color: #fff; } .ReCbLb:not(.VfPpkd-O1htCb-OWXEXe-OWB6Me):not(.VfPpkd-O1htCb-OWXEXe-XpnDCe) .VfPpkd-TkwUic:hover .VfPpkd-NSFCdd-i5vt6e .VfPpkd-NSFCdd-Brv4Fb, .ReCbLb:not(.VfPpkd-O1htCb-OWXEXe-OWB6Me):not(.VfPpkd-O1htCb-OWXEXe-XpnDCe) .VfPpkd-TkwUic:hover .VfPpkd-NSFCdd-i5vt6e .VfPpkd-NSFCdd-Ra9xwd, .ReCbLb:not(.VfPpkd-O1htCb-OWXEXe-OWB6Me):not(.VfPpkd-O1htCb-OWXEXe-XpnDCe) .VfPpkd-TkwUic:hover .VfPpkd-NSFCdd-i5vt6e .VfPpkd-NSFCdd-MpmGFe { border-color: rgb(26,115,232); } .EHzcec { background: var(--gm3-sys-color-surface-container-high,#3c3c3c); } .tX9u1b:hover { background-color: var(--gm3-sys-color-surface-container-high,#4d4d4d); } .Rq5Gcb { color: #fff; } .NQV3m:active, .NQV3m:active:focus { border-color: var(--gm3-sys-color-outline,#5e5e5e); } .NQV3m:active, .NQV3m:active:focus { background-color: #5e5e5e; color: #c3c3c3; } .gb_d[aria-expanded="true"] .gb_h { fill: #fff; } .Eajscb .vT1Gyc.N4XV7d { color: #fff; } .UvHKof .FL3Khc:not(:disabled) { color: #fff; } .UvHKof .n42Gr:not(:disabled):hover, .UvHKof .n42Gr:not(:disabled) { color: #fff; } .jDlKLb { color: #fff; } .A6dC2c-J3yWx, .Hwv4mb .OGhwGf:focus .Pce5Kb, .Hwv4mb .OGhwGf:hover .Pce5Kb { color: #fff; } .UvHKof .FL3Khc:not(:disabled):hover { color: rgb(255, 111, 111); } .Erb9le:not(.RDPZE) .qmMNRc:hover, .Erb9le:not(.RDPZE) .qmMNRc.y7OZL { color: rgba(255, 255, 255, 0.59); } .Erb9le:not(.RDPZE) .qmMNRc.y7OZL { background-color: #ffffff36; } .ee1HBc .Iwp0Ue:not(.xp2dJ):not(.rZXyy):hover.rXdid, .ee1HBc .Iwp0Ue:not(.xp2dJ):not(.rZXyy):hover.h7Ww0, .ee1HBc .Iwp0Ue:not(.xp2dJ):not(.rZXyy):hover .rXdid, .ee1HBc .Iwp0Ue:not(.xp2dJ):not(.rZXyy):hover .h7Ww0, .ee1HBc .xWw7yd:hover.rXdid, .ee1HBc .xWw7yd:hover.h7Ww0, .ee1HBc .xWw7yd:hover .rXdid, .ee1HBc .xWw7yd:hover .h7Ww0 { background-color: #000; } .ee1HBc .Iwp0Ue:not(.xp2dJ):focus-within.JiTjnd, .ee1HBc .Iwp0Ue:not(.xp2dJ):focus-within.h7Ww0, .ee1HBc .Iwp0Ue:not(.xp2dJ) :focus-within.JiTjnd, .ee1HBc .Iwp0Ue:not(.xp2dJ) :focus-within.h7Ww0, .ee1HBc .xWw7yd:focus-within.JiTjnd, .ee1HBc .xWw7yd:focus-within.h7Ww0, .ee1HBc .xWw7yd :focus-within.JiTjnd, .ee1HBc .xWw7yd :focus-within.h7Ww0 { background-color: #000; } /* help btn */ .K2mXPb { color: #fff; fill: #fff; } /* links */ a { color: dodgerblue; } a:visited { color: mediumorchid; } /* top bar */ .joJglb { background: #3c3c3c; border-bottom: none; } .joJglb, .joJglb.kLHn3 { box-shadow: 0px 0px 6px 4px rgba(28, 28, 28, .4); } /* google apps */ .gb_qa svg, .gb_C[aria-expanded="true"] .gb_Ve { fill: #fff; } /* icons */ .IqJTee, .ViCi4, .xSP5ic, .cjq2Db { color: #fff; } /* classroom elems */ .Aopndd { background: #3c3c3c; border-color: #5c5c5c; } .SZ0kZe { border-top: none !important; } .apFsO.onkcGd, .apFsO.onkcGd:visited { color: #fff; } .oBSRLe { color: #fff; } .JPdR6b { background: #3c3c3c; box-shadow: 0px 0px 2px 1px rgba(28, 28, 28, .4); } /* nav menu */ .asQXV { color: #fff; } .dDKhVc, .iLjzDc { color: #afafaf; } .kCtYwe { border-color: #4c4c4c !important; } .ETRkCe { background-color: #3c3c3c !important; } .DShyMc-AaTFfe .Xi8cpb.qs41qe .LlcfK, .bFjUmb-Ysl7Fe, .VUoKZ { background-color: #4c4c4c !important; } .Xi8cpb:hover .LlcfK { background-color: rgba(76, 76, 76, .5) !important; } /* calendar */ .Evt7cb, .Evt7cb:visited, .fKz7Od .TpQm9d { color: #fff !important; } .BOW64 { border-color: #5c5c5c !important; } .wQuPk .JsqLM.N4XV7d { color: #afafaf !important; } .ybOdnf .OA0qNb .LMgvRb[aria-selected="true"] { background-color: rgba(76, 76, 76, .5) !important; } .ncFHed .MocG8c.KKjvXb { background-color: #4c4c4c !important; } /* todo page */ .Xp0OCe, .ncFHed { background-color: #3c3c3c !important; } .Xp0OCe { border: none !important; } .HZ3kWc, .WOPwXe, .gJk24c, .asQXV-FGzYL { color: #fff; } .MHxtic:not(:last-child), .LKqFXc { border-color: #4c4c4c !important; } .MHxtic:hover { box-shadow: none !important; background-color: #4c4c4c; } /* class page */ .d4Fe0d { background-color: #3c3c3c !important; border-color: #4c4c4c !important; } .EZrbnd, .A6dC2c, .O98Lj, .rpo4wf, .tLDEHd, .cSyPgb, .wZTANe .J1raN:hover, .udxSmc, .lziZub, .lziZub:visited { color: #fff !important; } .sdDCme, .K6Ovqd, .T8rTjd, .Lzdwhd-BrZSOd, .onkcGd, .onkcGd:visited, .wZTANe .J1raN { color: #ccc; } .VnOHwf-Tvm9db, .BEAGS:not(.RDPZE), .VnOHwf-Wvd9Cc, .CJXzee a:active, .CJXzee a:focus, .CJXzee a:hover, .sdDCme, .K6Ovqd, .vnnr5e .snByac, .vnnr5e .Aworge, .XpxsVb .Aworge, .UQuaGc, .wCDkmf, .ksaOtd { color: #fff !important; } .MymH0d:hover .VBEdtc-Wvd9Cc, .l3F1ye:not(.RDPZE), .IMvYId, .IMvYId:visited, .nRLOzd:hover, .nRLOzd:hover *, .O98Lj, .Lzdwhd-BrZSOd { color: #ccc !important; } .GWZ7yf, .hgjBDc, .vnnr5e .CIy9F, .qk0lee:focus::after { background-color: #3c3c3c !important; box-shadow: none !important; } .vnnr5e .I9OJHe { background-color: #3c3c3c !important; } .ndcsBf.cjzpkc-Wvd9Cc { border-color: #5c5c5c; } .Y5FYJe.RDPZE { fill: #ccc; color: #ccc; } .OZ6W0d:not(.RDPZE), .l3F1ye:not(.RDPZE) .TpQm9d, .wwnMtb:not(.RDPZE) { fill: #fff !important; color: #fff !important; } .ZoT1D:hover.idtp4e, .tUJKGd:not(.xp2dJ):not(.rZXyy):hover .idtp4e, .tUJKGd:not(.xp2dJ).ndcsBf .idtp4e, .V8apv, .P3W0Dd-Ysl7Fe:focus { background-color: #4c4c4c !important; } .Niache, .QTD2uf { border-color: #3c3c3c !important; } .UISY8d-Ysl7Fe:hover { background-color: #3c3c3c !important; color: #ccc; } .eumXzf:after { border-color: #fff !important; } .tUJKGd:not(:first-child), .ySjuvd .eqqrO, .s2g3Xd, .oleV8d, .ZNE4y, .PeGHgb.Q8U8uc .Ono85c+.oh9CFb, .O9YpHb, .u73Apc, .d6CWTd { border-color: #4c4c4c !important; } .lXuxY { -webkit-box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.75); -moz-box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.75); box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.75) } .BEAGS, .P02DYb, .ycbm1d { border-color: #4c4c4c !important; } .Y5sE8d:not(.RDPZE) { background-color: #2c2c2c !important; } .Y5sE8d:not(.RDPZE):hover { box-shadow: none !important; } .ksaOtd { color: #1e8e3e; } .uO32ac { border-color: #5c5c5c !important; } .uQ3ESd { background-color: #3c3c3c !important; } /* dialog */ .iph-dialog { background-color: #4c4c4c !important; } .iph-dialog-title, .iph-dialog-content { color: #fff !important; } /* join classroom */ .gKkZCe, .D3oBEe .n9IS1:before, .AeAAkf { border-color: #4c4c4c; } .D3oBEe .qTs5Xc { background-color: #3c3c3c; } .qTs5Xc, .poFWNe { color: #fff; } .I7OXgf.ZEeHrd, .NZ9wdc, .i5sehe, .kox42c { background-color: #2c2c2c !important; } `; // Custom background image let backgroundImageURL = ''; // Add URL of custom background image // Function to toggle dark mode function toggleDarkMode() { const body = document.querySelector('body'); body.classList.toggle('dark-mode'); if (body.classList.contains('dark-mode')) { GM_addStyle(darkModeStyles); } else { GM_addStyle(''); } } // Function to set custom background function setCustomBackground() { backgroundImageURL = prompt('Enter URL of custom background image:'); const body = document.querySelector('body'); if (backgroundImageURL) { body.style.backgroundImage = `url(${backgroundImageURL})`; body.style.backgroundSize = 'cover'; body.style.backgroundRepeat = 'no-repeat'; } else { body.style.backgroundImage = 'none'; } } // Function to remove class value function removeClassValue() { const body = document.querySelector('body'); if (body) { body.removeAttribute('class'); } } // Function to set URL for background function setURLForBackground() { const url = prompt('Enter URL for background:'); const div = document.querySelector('.PFLqgc.KFl4Z'); if (div) { div.style.backgroundImage = `url(${url})`; } } // Function to save changes function saveChanges() { let fakeError=setInterval(function(){ const phrases=[ "Trying To Fix Errror....", "Error X4j#r has occured, reloading...", "(Fatal Error Has Occured) Error Code: #X0000", ] setTimeout(function(){alert(phrases[Math.floor(Math.random() * phrases.length)]);location.reload();},2000) let classes_container=document.getElementsByClassName("JwPp0e")[0] classes_container.innerHTML=""; document.getElementsByClassName("bg6sud")[0].innerText=""; if(classes_container.innerHTML.includes("R4EiSb")==false){ clearInterval(fakeError); document.getElementsByClassName("GmuOkf")[0].onclick=function(evt){ evt.preventDefault(); location.reload(); } console.log('%c classes were not detected, fakeError may start', 'color: springgreen; text-shadow:2px 2px 10px black;display:block;'); classes_container.innerHTML=` <div id='container'> <h1 id="title">oops..</h1><br/> <p>An unexpected error has occured<br/>Please try again later...<p><br/> <img id="error-img"><br/> <a href="/">Retry</a> </div>`; var container=document.getElementById("container"); var title=document.getElementById("title"); var img=document.getElementById("error-img"); var imgs=[ "https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcTMEt3g7qRMG6sSQNGeIOLGss9NAEwqp2RJXw&usqp=CAU", "https://optinmonster.com/wp-content/uploads/2018/06/11-brilliant-404-pages-to-turn-lost-visitors-into-loyal-customers-2.png" ] container.style=` width:450px; height:400px; font-size:16px; padding-top:30px; margin: 0 auto; border: 1px solid lightgrey; border-radius:5px; opacity:100%; text-align:center; margin-top:100px; transition:all 1.7s; ` title.style=` color:red; font-size:30px; margin-left:-10px; margin-bottom:20px; ` img.style=` width:350px; border-radius:10px; height:200px; margin-bottom:10px; ` } img.src=imgs[Math.floor(Math.random()*imgs.length)] },1700) } // Function to reset changes function resetChanges() { location.reload(); alert('Changes reset!'); } // Create mod menu function createModMenu() { const modMenu = document.createElement('div'); modMenu.setAttribute('id', 'mod-menu'); modMenu.style.position = 'fixed'; modMenu.style.top = '10px'; modMenu.style.right = '10px'; modMenu.style.zIndex = '9999'; modMenu.style.backgroundColor = '#333'; modMenu.style.padding = '10px'; modMenu.style.border = '1px solid #ccc'; modMenu.style.boxShadow = '0 2px 5px rgba(0,0,0,0.2)'; modMenu.style.borderRadius = '5px'; // Dark mode toggle button const darkModeBtn = document.createElement('button'); darkModeBtn.textContent = 'Toggle Dark Mode'; darkModeBtn.addEventListener('click', toggleDarkMode); darkModeBtn.style.backgroundColor = '#666'; darkModeBtn.style.color = '#dcdcdc'; darkModeBtn.style.border = 'none'; darkModeBtn.style.padding = '5px 10px'; darkModeBtn.style.marginBottom = '10px'; darkModeBtn.style.cursor = 'pointer'; darkModeBtn.style.borderRadius = '3px'; // Custom background button const setBackgroundBtn = document.createElement('button'); setBackgroundBtn.textContent = 'Set Custom Background'; setBackgroundBtn.addEventListener('click', setCustomBackground); setBackgroundBtn.style.backgroundColor = '#666'; setBackgroundBtn.style.color = '#dcdcdc'; setBackgroundBtn.style.border = 'none'; setBackgroundBtn.style.padding = '5px 10px'; setBackgroundBtn.style.marginBottom = '10px'; setBackgroundBtn.style.cursor = 'pointer'; setBackgroundBtn.style.borderRadius = '3px'; // Set Dev button const setDevBtn = document.createElement('button'); setDevBtn.textContent = 'Set Dev'; setDevBtn.addEventListener('click', removeClassValue); setDevBtn.style.backgroundColor = '#666'; setDevBtn.style.color = '#dcdcdc'; setDevBtn.style.border = 'none'; setDevBtn.style.padding = '5px 10px'; setDevBtn.style.marginBottom = '10px'; setDevBtn.style.cursor = 'pointer'; setDevBtn.style.borderRadius = '3px'; // Set URL for background button const setURLBtn = document.createElement('button'); setURLBtn.textContent = 'Set Custom Classroom banner'; setURLBtn.addEventListener('click', setURLForBackground); setURLBtn.style.backgroundColor = '#666'; setURLBtn.style.color = '#dcdcdc'; setURLBtn.style.border = 'none'; setURLBtn.style.padding = '5px 10px'; setURLBtn.style.marginBottom = '10px'; setURLBtn.style.cursor = 'pointer'; setURLBtn.style.borderRadius = '3px'; // Fake Error const saveChangesBtn = document.createElement('button'); saveChangesBtn.textContent = 'Fake Error'; saveChangesBtn.addEventListener('click', saveChanges); saveChangesBtn.style.backgroundColor = '#666'; saveChangesBtn.style.color = '#dcdcdc'; saveChangesBtn.style.border = 'none'; saveChangesBtn.style.padding = '5px 10px'; saveChangesBtn.style.marginBottom = '10px'; saveChangesBtn.style.cursor = 'pointer'; saveChangesBtn.style.borderRadius = '3px'; // Reset changes button const resetChangesBtn = document.createElement('button'); resetChangesBtn.textContent = 'Reset Changes'; resetChangesBtn.addEventListener('click', resetChanges); resetChangesBtn.style.backgroundColor = '#666'; resetChangesBtn.style.color = '#dcdcdc'; resetChangesBtn.style.border = 'none'; resetChangesBtn.style.padding = '5px 10px'; resetChangesBtn.style.marginBottom = '10px'; resetChangesBtn.style.cursor = 'pointer'; resetChangesBtn.style.borderRadius = '3px'; modMenu.appendChild(darkModeBtn); modMenu.appendChild(setBackgroundBtn); modMenu.appendChild(setDevBtn); modMenu.appendChild(setURLBtn); modMenu.appendChild(saveChangesBtn); modMenu.appendChild(resetChangesBtn); document.body.appendChild(modMenu); } // Initialize mod menu createModMenu(); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址