Greasy Fork镜像 支持简体中文。

洛谷代码折叠

支持折叠洛谷页面中的代码,过长代码自动折叠

  1. // ==UserScript==
  2. // @name 洛谷代码折叠
  3. // @namespace https://www.luogu.com.cn/user/237530
  4. // @version 0.2
  5. // @description 支持折叠洛谷页面中的代码,过长代码自动折叠
  6. // @author rzh123
  7. // @match https://www.luogu.com.cn/*
  8. // @icon https://cdn.luogu.com.cn/fe/logo.png
  9. // @grant none
  10. // @license MIT
  11. // ==/UserScript==
  12.  
  13. var threshold=1500;
  14. function insertAfter(ele,pos){
  15. var par=pos.parentNode;
  16. if (par.lastChild==pos){
  17. par.appendChild(ele);
  18. }
  19. else{
  20. par.insertBefore(ele,pos.nextSibling);
  21. }
  22. }
  23. function doshow(obj){
  24. var codebtn=document.createElement("A");
  25. codebtn.href="javascript:;";
  26. codebtn.innerHTML="[折叠代码]";
  27. codebtn.onclick=function(){dohide(obj);codebtn.parentNode.removeChild(codebtn);};
  28. obj.style.display="block";
  29. insertAfter(codebtn,obj);
  30. }
  31. function dohide(obj){
  32. var codebtn=document.createElement("A");
  33. codebtn.href="javascript:;";
  34. codebtn.innerHTML="[展开代码]";
  35. //codebtn.style.marginTop="3px";
  36. codebtn.onclick=function(){doshow(obj);codebtn.parentNode.removeChild(codebtn);};
  37. obj.style.display="none";
  38. insertAfter(codebtn,obj);
  39. }
  40. function main(){
  41. var nodes=document.all,obj,obj2;
  42. for(var i=0;i<nodes.length;++i){
  43. obj=nodes[i];
  44. if(obj.tagName=="PRE"&&obj.childElementCount==1&&obj.firstElementChild.tagName=="CODE"){
  45. obj2=obj.firstElementChild;
  46. //console.log(obj2.textContent);
  47. //console.log(obj2.textContent.length);
  48. if(obj2.textContent.length>threshold){
  49. dohide(obj2);
  50. }
  51. else{
  52. doshow(obj2);
  53. }
  54. }
  55. }
  56. }
  57. window.onload=function(){
  58. 'use strict';
  59. main();
  60. };

QingJ © 2025

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