Better Luogu!

Luogu Expansion

当前为 2024-08-09 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Better Luogu!
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.7.1
  5. // @description:zh 洛谷扩展
  6. // @description Luogu Expansion
  7. // @author volatile
  8. // @match *://*.luogu.com.cn/*
  9. // @match *://*.luogu.com/*
  10. // @icon https://fecdn.luogu.com.cn/luogu/logo.png?0fdd294ff62e331d2f70e1a37ba4ee02
  11. // @grant GM_addStyle
  12. // @grant GM_getValue
  13. // @grant GM_setValue
  14. // @grant GM_deleteValue
  15. // @grant GM_listValues
  16. // @grant GM_setClipboard
  17. // @grant GM_xmlhttpRequest
  18. // @grant GM_getResourceText
  19. // @grant unsafeWindow
  20. // @connect baidu.com
  21. // @connect greasyfork.org
  22. // @require https://unpkg.com/sweetalert/dist/sweetalert.min.js
  23. // @license MIT
  24. // ==/UserScript==
  25.  
  26. (function() {
  27. 'use strict';
  28. //进入插件
  29. console.log("This is Better Luogu!");
  30. console.log("\n _____ _____ _____ _____ _____ \n /\\ \\ /\\ \\ /\\ \\ /\\ \\ /\\ \\ \n /::\\____\\ /::\\ \\ /::\\____\\ /::\\____\\ /::\\ \\ \n /::::| | /::::\\ \\ /:::/ / /:::/ / /::::\\ \\ \n /:::::| | /::::::\\ \\ /:::/ _/___ /:::/ / /::::::\\ \\ \n /::::::| | /:::/\\:::\\ \\ /:::/ /\\ \\ /:::/ / /:::/\\:::\\ \\ \n /:::/|::| | /:::/__\\:::\\ \\ /:::/ /::\\____\\ /:::/ / /:::/ \\:::\\ \\ \n /:::/ |::| | /::::\\ \\:::\\ \\ /:::/ /:::/ / /:::/ / /:::/ \\:::\\ \\ \n /:::/ |::| | _____ /::::::\\ \\:::\\ \\ /:::/ /:::/ _/___ /:::/ / /:::/ / \\:::\\ \\ \n /:::/ |::| |/\\ \\ /:::/\\:::\\ \\:::\\ \\ /:::/___/:::/ /\\ \\ /:::/ / /:::/ / \\:::\\ ___\\ \n/:: / |::| /::\\____\\/:::/__\\:::\\ \\:::\\____\\|:::| /:::/ /::\\____\\/:::/____/ /:::/____/ ___\\:::| |\n\\::/ /|::| /:::/ /\\:::\\ \\:::\\ \\::/ /|:::|__/:::/ /:::/ /\\:::\\ \\ \\:::\\ \\ /\\ /:::|____|\n \\/____/ |::| /:::/ / \\:::\\ \\:::\\ \\/____/ \\:::\\/:::/ /:::/ / \\:::\\ \\ \\:::\\ /::\\ \\::/ / \n |::|/:::/ / \\:::\\ \\:::\\ \\ \\::::::/ /:::/ / \\:::\\ \\ \\:::\\ \\:::\\ \\/____/ \n |::::::/ / \\:::\\ \\:::\\____\\ \\::::/___/:::/ / \\:::\\ \\ \\:::\\ \\:::\\____\\ \n |:::::/ / \\:::\\ \\::/ / \\:::\\__/:::/ / \\:::\\ \\ \\:::\\ /:::/ / \n |::::/ / \\:::\\ \\/____/ \\::::::::/ / \\:::\\ \\ \\:::\\/:::/ / \n /:::/ / \\:::\\ \\ \\::::::/ / \\:::\\ \\ \\::::::/ / \n /:::/ / \\:::\\____\\ \\::::/ / \\:::\\____\\ \\::::/ / \n \\::/ / \\::/ / \\::/____/ \\::/ / \\::/____/ \n \\/____/ \\/____/ ~~ \\/____/ \n ");
  31.  
  32. var css = ".swal-overlay {background-color: rgba(0, 0, 0, 0.5);} .rating-star {cursor: pointer;font-size: 24px;color: #ccc;}.rating-star.active, .rating-star:hover {color: #ff9800;}";
  33. var style = document.createElement("style");
  34. style.innerHTML = css;
  35. document.head.appendChild(style);
  36.  
  37.  
  38. let nowurl = window.location.href;
  39. console.log(nowurl);
  40.  
  41. let nowcolor1;
  42. let nowcolor="";
  43. if(nowurl == 'https://www.luogu.com.cn/'){
  44. nowcolor1 = document.querySelector('#app-old > div.lg-index-content.am-center > div:nth-child(1) > div > div > div > div.am-u-md-4.lg-punch.am-text-center > h2 > a').className;
  45. for(let i=0;i<nowcolor1.length;i++){
  46. if(nowcolor1[i]==' ') break;
  47. nowcolor = nowcolor + nowcolor1[i];
  48. }
  49. }
  50. console.log(nowcolor);
  51.  
  52.  
  53. function setcookie(name,value,days,path,domain,secure){
  54. let expires = "";
  55. if(days){
  56. let date = new Date();
  57. date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
  58. expires = "; expires=" + date.toUTCString();
  59. }
  60. var cookieString = name + "=" + (value || "") + expires;
  61. if(path) cookieString += "; path=" + path;
  62. if(domain) cookieString += "; domain=" + domain;
  63. if(secure && window.location.protocol === "https:") cookieString += "; secure";
  64. document.cookie = cookieString;
  65. }
  66.  
  67. function getcookie(name){
  68. const cookiestring = document.cookie;
  69. const cookies = cookiestring.split('; ');
  70. for(const cookie of cookies){
  71. const [cookiename, cookievalue] = cookie.split('=');
  72. if(cookiename === name) return cookievalue;
  73. }
  74. if(name == 'color'){
  75. setcookie('color',nowcolor,114514,'/','luogu.com.cn',true);
  76. return nowcolor;
  77. }
  78. else if(name == 'hanger'){
  79. setcookie('hanger','null',114514,'/','luogu.com.cn',true);
  80. return "null";
  81. }
  82. else if(name == 'version'){
  83. setcookie('version','1.7.1',114514,'/','luogu.com.cn',true);
  84. return "1.7.1";
  85. }
  86. else if(name == 'update'){
  87. setcookie('update','true',114514,'/','luogu.com.cn',true);
  88. return "true";
  89. }
  90. }
  91.  
  92.  
  93. function deletecookie(name){
  94. document.cookie = name+ '=; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/';
  95. }
  96.  
  97. GM_xmlhttpRequest({
  98. method: "GET",
  99. url: 'https://greasyfork.org/zh-CN/scripts/487511-better-luogu',
  100. onload: function(response){
  101. let parser = new DOMParser();
  102. let doc = parser.parseFromString(response.responseText, "text/html");
  103. console.log(doc);
  104. let version = doc.querySelector('dd.script-show-version')
  105. console.log(version);
  106. if(version.textContent != '1.7.1'){
  107. if(getcookie('update')=='true'){
  108. swal("Better Luogu!","有新版本",{
  109. buttons: {
  110. no: {
  111. text: "不再提醒",
  112. value: "false",
  113. },
  114. yes: {
  115. text: "更新",
  116. value: "true",
  117. }
  118. },
  119. })
  120. .then((value) => {
  121. if(value == "false"){
  122. deletecookie('update');
  123. setcookie('update','false',114514,'/','luogu.com.cn',true);
  124. swal("Better Luogu!","好的,你可以在 NEWLG 菜单中点击更新来更新");
  125. }
  126. else{
  127. deletecookie('update');
  128. setcookie('update','false',114514,'/','luogu.com.cn',true);
  129. window.open('https://greasyfork.org/zh-CN/scripts/487511-better-luogu','_blank');
  130. }
  131. });
  132. }
  133. }
  134. }
  135. });
  136.  
  137. function colorschange(changecolor){//emm,这个函数,额,可能要用吧
  138. if(changecolor == 'lg-fg-gray') return 'rgb\(191, 191, 191\)';
  139. else if(changecolor == 'lg-fg-blue') return 'rgb\(14, 144, 210\)';
  140. else if(changecolor == 'lg-fg-green') return 'rgb\(94, 185, 94\)';
  141. else if(changecolor == 'lg-fg-orange') return 'rgb\(230, 126 34\)';
  142. else if(changecolor == 'lg-fg-red') return 'rgb\(231, 76, 60\)';
  143. else if(changecolor == 'lg-fg-purple') return 'rgb\(142, 68, 173\)';
  144. else if(changecolor == 'lg-fg-brown') return 'rgb\(173, 139, 0\)';
  145. }
  146.  
  147. function update(){
  148. swal("Better Luogu! 1.7.1","又双叒修复了关于版本的bug",{
  149. //buttons: {
  150. // cancel: "取消",
  151. // _continue: {
  152. // text: "继续",
  153. // value: "continue",
  154. // },
  155. //},
  156. })
  157. }
  158.  
  159. if(getcookie('version') != '1.7.1'){
  160. setcookie('version','1.7.1',114514,'/','luogu.com.cn',true);
  161. update();
  162. }
  163.  
  164. let changecolor = getcookie('color');
  165.  
  166. let tagchange = getcookie('tag');
  167. let tag = document.createElement("span");
  168. let tagcolor;
  169. if(changecolor != 'lg-fg-blue' && changecolor != 'lg-fg-orange'){
  170. tagcolor = changecolor.replace('fg','bg');
  171. tag.className = 'am-badge am-radius ' + tagcolor;
  172. }
  173. else if(changecolor == 'lg-fg-blue'){
  174. tagcolor = 'color-none';
  175. tag.className = 'am-badge am-radius ' + tagcolor;
  176. tag.style.background = 'rgb(52, 152, 219)';
  177. }
  178. else if(changecolor == 'lg-fg-orange'){
  179. tagcolor = 'color-none';
  180. tag.className = 'am-badge am-radius ' + tagcolor;
  181. tag.style.background = 'rgb(243, 156, 17)';
  182. }
  183. if(changecolor != 'lg-fg-brown') tag.textContent = tagchange;
  184. else tag.textContent = '作弊者';
  185.  
  186. //首页
  187. if(nowurl == 'https://www.luogu.com.cn/'){
  188. //日历
  189. const today=new Date();
  190. const year=today.getFullYear();
  191. const month=String(today.getMonth()+1);
  192. const day=String(today.getDate());
  193. console.log(year);
  194. console.log(month);
  195. console.log(day);
  196. let date_html='<h2>今天是 '+year+'-'+month+'-'+day+'</h2>';
  197. if(month==1&&day==1){
  198. date_html+='<h2>今天是元旦,新的一年,新的开始</h2>';
  199. }
  200. else if(month==2&&day==29){
  201. date_html+='<h2>今年是闰年</h2>';
  202. }
  203. else if(month==4&&day==1){
  204. date_html+='<h2>今天是愚人节</h2>';
  205. }
  206. else if(month==5&&day==1){
  207. date_html+='<h2>今天是劳动节</h2>';
  208. }
  209. else if(month==6&&day==1){
  210. date_html+='<h2>今天是儿童节</h2>';
  211. }
  212. else if(month==9&&day==10){
  213. date_html+='<h2>今天是教师节</h2>';
  214. }
  215. else if(month==10&&day==1){
  216. date_html+='<h2>今天是国庆节,七天小长假,启动!</h2>'
  217. }
  218. else if(month==12&&day==31){
  219. date_html+='<h2>明年见</h2>';
  220. }
  221. else date_html+='<h2>欢迎!</h2>';
  222. let date = document.createElement('div');
  223. date.className = 'lg-article';
  224. date.innerHTML = date_html;
  225. document.querySelector('div.lg-right > div:nth-child(1)').insertAdjacentElement('beforebegin', date);
  226.  
  227. //更改用户名颜色
  228. let color = document.querySelector('#app-old > div.lg-index-content.am-center > div:nth-child(1) > div > div > div > div.am-u-md-4.lg-punch.am-text-center > h2 > a');
  229. console.log(color);
  230. if(changecolor != 'null') color.className=changecolor;
  231.  
  232. function removeDivWithText(text) {
  233. document.querySelectorAll('div').forEach(div => {
  234. if(div.textContent === text) div.remove();
  235. });
  236. }
  237.  
  238. function findElement(element, text, cclass){
  239. document.querySelectorAll(element).forEach(E => {
  240. if(E.textContent === text) E.className = cclass;
  241. });
  242. }
  243.  
  244. removeDivWithText('暂无推荐');
  245. removeDivWithText('洛谷根据您近期的做题情况,使用机器学习自动为您推荐符合您目前程度的题目。本列表每日更新一次。');
  246.  
  247. GM_xmlhttpRequest({
  248. method: "GET",
  249. url: 'https://top.baidu.com/board?tab=realtime',
  250. onload: function(response){
  251. let rs = new DOMParser();
  252. let doc = rs.parseFromString(response.responseText, "text/html");
  253. for(let i=1;i<=5;i++){
  254. let th = i.toString();
  255. let selector = '#sanRoot > main > div.container.right-container_2EFJr > div > div:nth-child(2) > div:nth-child(' + th + ') > div.content_1YWBm > a > div.c-single-text-ellipsis';
  256. let _rs = doc.querySelector(selector);
  257. console.log(_rs.textContent);
  258. let selector2 = '#sanRoot > main > div.container.right-container_2EFJr > div > div:nth-child(2) > div:nth-child(' + th + ') > div.content_1YWBm > a';
  259. let rslink = doc.querySelector(selector2);
  260. console.log(rslink);
  261. let link = document.createElement("a");
  262. link.href = rslink.href;
  263. link.textContent = _rs.textContent;
  264. let RS = document.createElement("p");
  265. RS.appendChild(link);
  266. findElement('h2','智能推荐','zntj');
  267. document.getElementsByClassName('zntj')[0].parentNode.append(RS);
  268. }
  269. }
  270. });
  271. }
  272.  
  273. window.onload = function(){
  274. let _hanger = getcookie('hanger');
  275. let __hanger = document.createElementNS('http://www.w3.org/2000/svg','svg');
  276. __hanger.setAttribute('width','16');
  277. __hanger.setAttribute('height','16');
  278. __hanger.setAttribute('viewBox','0 0 16 16');
  279. __hanger.setAttribute('style','margin-bottom: -3px;');
  280.  
  281. if(_hanger == 'green') __hanger.setAttribute('fill','#5eb95e');
  282. else if(_hanger == 'blue') __hanger.setAttribute('fill','#3498db');
  283. else if(_hanger == 'golden') __hanger.setAttribute('fill','#f1c40f');
  284.  
  285. let ___hanger = document.createElementNS('http://www.w3.org/2000/svg','path');
  286. ___hanger.setAttribute('d','M16 8C16 6.84375 15.25 5.84375 14.1875 5.4375C14.6562 4.4375 14.4688 3.1875 13.6562 2.34375C12.8125 1.53125 11.5625 1.34375 10.5625 1.8125C10.1562 0.75 9.15625 0 8 0C6.8125 0 5.8125 0.75 5.40625 1.8125C4.40625 1.34375 3.15625 1.53125 2.34375 2.34375C1.5 3.1875 1.3125 4.4375 1.78125 5.4375C0.71875 5.84375 0 6.84375 0 8C0 9.1875 0.71875 10.1875 1.78125 10.5938C1.3125 11.5938 1.5 12.8438 2.34375 13.6562C3.15625 14.5 4.40625 14.6875 5.40625 14.2188C5.8125 15.2812 6.8125 16 8 16C9.15625 16 10.1562 15.2812 10.5625 14.2188C11.5938 14.6875 12.8125 14.5 13.6562 13.6562C14.4688 12.8438 14.6562 11.5938 14.1875 10.5938C15.25 10.1875 16 9.1875 16 8ZM11.4688 6.625L7.375 10.6875C7.21875 10.8438 7 10.8125 6.875 10.6875L4.5 8.3125C4.375 8.1875 4.375 7.96875 4.5 7.8125L5.3125 7C5.46875 6.875 5.6875 6.875 5.8125 7.03125L7.125 8.34375L10.1562 5.34375C10.3125 5.1875 10.5312 5.1875 10.6562 5.34375L11.4688 6.15625C11.5938 6.28125 11.5938 6.5 11.4688 6.625Z');
  287. __hanger.appendChild(___hanger);
  288. let _hanger_ = document.createElement("a");
  289. _hanger_.href = 'https://www.luogu.com/discuss/142324';
  290. _hanger_.appendChild(__hanger);
  291.  
  292. let button = document.createElement("a");
  293. button.innerHTML = '<button id="NLTB" style=\"background-color: rgb\(94,114,228\);border-radius: 7px;color: white;border: none;padding: 7px 12px;text-align: center;text-decoration: none;display: inline-block;font-size: 16px;margin: 4px 2px;cursor: pointer;border: none;box-shadow: 2px 3px 7px #000;\">NEWLG</button>';
  294. if(nowurl == 'https://www.luogu.com.cn/' || nowurl == 'https://www.luogu.com.cn/chat' || nowurl.includes('https://www.luogu.com.cn/user/notification') || (nowurl.includes('https://www.luogu.com.cn/user/') && !nowurl.includes('https://www.luogu.com.cn/user/setting'))) document.querySelector('#app > div.main-container > div.wrapper.wrapped.lfe-body.header-layout.tiny > div.container > nav').insertAdjacentElement('beforebegin', button);
  295. else{
  296. let user_nav = document.querySelector('div.user-nav[data-v-2dfcfd35]');
  297. let c_usernav = document.querySelector('nav[data-v-2dfcfd35]');
  298. user_nav.style.verticalAlign = 'middle';
  299. c_usernav.insertBefore(button,c_usernav.firstChild);
  300. button.href = 'https://zhuangjihong.github.io/NEWLG/';
  301. }
  302. const tb = document.getElementById("NLTB");
  303.  
  304. function reloadmenu(){
  305. swal("Better Luogu!","更改成功","success",{button: "刷新"}).then((value) => {location.reload();});
  306. }
  307.  
  308. function changeusercolor(){
  309. swal({
  310. title: "Better Luogu!",
  311. text: "输入一个词语(规则见油叉插件页)",
  312. content: "input",
  313. button: {
  314. text: "更改",
  315. closeModal: false,
  316. },
  317. })
  318. .then((input) => {
  319. if(input=='灰名'||input=='gray'){
  320. deletecookie('color');
  321. setcookie('color','lg-fg-gray',114514,'/','luogu.com.cn',true);
  322. reloadmenu();
  323. }
  324. else if(input=='蓝名'||input=='blue'){
  325. deletecookie('color');
  326. setcookie('color','lg-fg-blue',114514,'/','luogu.com.cn',true);
  327. reloadmenu();
  328. }
  329. else if(input=='绿名'||input=='green'){
  330. deletecookie('color');
  331. setcookie('color','lg-fg-green',114514,'/','luogu.com.cn',true);
  332. reloadmenu();
  333. }
  334. else if(input=='橙名'||input=='orange'){
  335. deletecookie('color');
  336. setcookie('color','lg-fg-orange',114514,'/','luogu.com.cn',true);
  337. reloadmenu();
  338. }
  339. else if(input=='红名'||input=='red'){
  340. deletecookie('color');
  341. setcookie('color','lg-fg-red',114514,'/','luogu.com.cn',true);
  342. reloadmenu();
  343. }
  344. else if(input=='紫名'||input=='purple'){
  345. deletecookie('color');
  346. setcookie('color','lg-fg-purple',114514,'/','luogu.com.cn',true);
  347. reloadmenu();
  348. }
  349. else if(input=='棕名'||input=='brown'){
  350. deletecookie('color');
  351. setcookie('color','lg-fg-brown',114514,'/','luogu.com.cn',true);
  352. reloadmenu();
  353. }
  354. else if(input=='复原'||input=='recover'){
  355. deletecookie('color');
  356. setcookie('color',nowcolor,114514,'/','luogu.com.cn',true);
  357. reloadmenu();
  358. }
  359. else swal("Better Luogu!","请按规范输入","error");
  360. });
  361. }
  362.  
  363. function changehanger(){
  364. swal("Better Luogu!","选择一个勾子", {
  365. buttons: {
  366. cancel: "取消",
  367. greenhanger: {
  368. text: "绿勾",
  369. value: "greenhanger",
  370. },
  371. bluehanger: {
  372. text: "蓝勾",
  373. value: "bluehanger",
  374. },
  375. goldenhanger: {
  376. text: "金勾",
  377. value: "goldenhanger",
  378. },
  379. nullhanger: {
  380. text: "无勾",
  381. value: "nullhanger",
  382. },
  383. }
  384. })
  385. .then((value) => {
  386. switch (value){
  387. case "greenhanger":
  388. deletecookie('hanger');
  389. setcookie('hanger','green',114514,'/','luogu.com.cn',true);
  390. reloadmenu();
  391. break;
  392. case "bluehanger":
  393. deletecookie('hanger');
  394. setcookie('hanger','blue',114514,'/','luogu.com.cn',true);
  395. reloadmenu();
  396. break;
  397. case "goldenhanger":
  398. deletecookie('hanger');
  399. setcookie('hanger','golden',114514,'/','luogu.com.cn',true);
  400. reloadmenu();
  401. break;
  402. case "nullhanger":
  403. deletecookie('hanger');
  404. setcookie('hanger','null',114514,'/','luogu.com.cn',true);
  405. reloadmenu();
  406. break;
  407. }
  408. });
  409. }
  410.  
  411. function changetag(){
  412. swal({
  413. title: "Better Luogu!",
  414. text: "输入一个tag(无输入以取消)",
  415. content: "input",
  416. button: {
  417. text: "更改",
  418. closeModal: false,
  419. },
  420. })
  421. .then((value) => {
  422. if(getcookie('color') == 'lg-fg-brown') swal("Better Luogu!","当前为棕名","error");
  423. else if(value.length > 10) swal("Better Luogu!","长度应不大于10","error");
  424. else{
  425. deletecookie('tag');
  426. setcookie('tag',value,114514,'/','luogu.com.cn',true);
  427. reloadmenu();
  428. }
  429. });
  430. }
  431.  
  432. tb.addEventListener('click', function(){
  433. if(nowurl == 'https://www.luogu.com.cn/'){
  434. swal("Better Luogu!","选择一个更改", {
  435. buttons: {
  436. cancel: "取消",
  437. username: {
  438. text: "颜色",
  439. value: "color",
  440. },
  441. hanger: {
  442. text: "勾子",
  443. value: "hanger",
  444. },
  445. tag: {
  446. text: "tag",
  447. value: "tag",
  448. },
  449. update: {
  450. text: "更新",
  451. value: "update",
  452. },
  453. },
  454. })
  455. .then((value) => {
  456. switch (value){
  457. case "color":
  458. changeusercolor();
  459. break;
  460. case "hanger":
  461. changehanger();
  462. break;
  463. case "tag":
  464. changetag();
  465. break;
  466. case "update":
  467. window.open('https://greasyfork.org/zh-CN/scripts/487511-better-luogu','_blank');
  468. break;
  469. }
  470. });
  471. }
  472. });
  473. if(nowurl == 'https://www.luogu.com.cn/'){
  474. if(getcookie('hanger')!='null'){
  475. document.querySelector('#app-old > div.lg-index-content.am-center > div:nth-child(1) > div > div > div > div.am-u-md-4.lg-punch.am-text-center > h2 > a').innerHTML += '&nbsp;';
  476. document.querySelector('#app-old > div.lg-index-content.am-center > div:nth-child(1) > div > div > div > div.am-u-md-4.lg-punch.am-text-center > h2 > a').appendChild(_hanger_);
  477. }
  478. if(getcookie('tag')!=''){
  479. document.querySelector('#app-old > div.lg-index-content.am-center > div:nth-child(1) > div > div > div > div.am-u-md-4.lg-punch.am-text-center > h2 > a').innerHTML += '&nbsp;';
  480. document.querySelector('#app-old > div.lg-index-content.am-center > div:nth-child(1) > div > div > div > div.am-u-md-4.lg-punch.am-text-center > h2 > a').appendChild(tag);
  481. }
  482. }
  483. else if(nowurl.includes('https://www.luogu.com.cn/user/')&&!nowurl.includes('https://www.luogu.com.cn/user/setting')){
  484. if(document.querySelector('#app > div.main-container > main > div > div.full-container > section.main > div > div:nth-child(2)').className == 'introduction marked') document.querySelector('#app > div.main-container > main > div > div.full-container > section.main > div > div:nth-child(2)').removeAttribute('style');
  485. else document.querySelector('#app > div.main-container > main > div > div.full-container > section.main > div > div:nth-child(2)').remove();
  486. let jieshao = document.querySelector('#app > div.main-container > main > div > div.full-container > section.main > div > div.introduction.marked');
  487. if(jieshao.style.display == 'none') jieshao.removeAttribute('style');
  488. }
  489. };
  490. })();