您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Spoilers for MZ
- // ==UserScript==
- // @name MZ Spoiler
- // @namespace http://tampermonkey.net/
- // @version 1.0
- // @description Spoilers for MZ
- // @author Murder
- // @match https://www.managerzone.com/?p=forum&sub=topic*
- // @icon https://www.google.com/s2/favicons?domain=lsue.edu
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- var template = `<div class="spoiler" style="border: 1px solid #ddd; padding: 3px;">
- <input type="button" class="btnSpoiler" value="Mostrar/Esconder Spoiler" style="background-color: palegreen">
- <div class="inner" style="display: none; border: 1px solid #eee;padding: 3px; margin: 3px;">
- ###text###
- </div>
- </div>`;
- replaceSpoilers();
- //addMarkItUpEvent();
- function replaceSpoilers() {
- let posts = document.getElementsByClassName('forum-post-content');
- let parsedMsg = '';
- for(let i = 0; i < posts.length; i++) {
- let text = posts[i].children[0].defaultValue;
- let exit = false;
- while(!exit) {
- if(posts[i].innerHTML.indexOf("[spoiler]") !== -1 && posts[i].innerHTML.indexOf("[/spoiler]") !== -1 &&
- posts[i].innerHTML.indexOf("[spoiler]") < posts[i].innerHTML.indexOf("[/spoiler]")) {
- let spoiler = posts[i].innerHTML.substring(posts[i].innerHTML.indexOf("[spoiler]"), posts[i].innerHTML.indexOf("[/spoiler]") + 10);
- let spoilerText = posts[i].innerHTML.substring(posts[i].innerHTML.indexOf("[spoiler]") + 9, posts[i].innerHTML.indexOf("[/spoiler]"));
- let readyTemplate = template.replace('###text###', spoilerText)
- posts[i].innerHTML = posts[i].innerHTML.replace(spoiler, readyTemplate);
- }
- else {
- exit = true;
- }
- }
- let btn = document.getElementsByClassName('btnSpoiler');
- for(let i = 0; i < btn.length; i++) {
- btn[i].addEventListener('click', showSpoiler, false);
- }
- }
- }
- function addMarkItUpEvent() {
- let markBtn = document.getElementsByClassName('markItUpButton markItUpButton12 preview')[0];
- markBtn.addEventListener('click', replaceMarkItUp, false);
- }
- function replaceMarkItUp(obj) {
- var iframe = document.getElementsByClassName("markItUpPreviewFrame")[0];
- var checkExist = setInterval(function() {
- if (iframe) {
- let text = iframe.contentWindow.document.getElementsByTagName("div")[0].innerHTML;
- if(text.indexOf("[spoiler]") !== -1 && text.indexOf("[/spoiler]") !== -1 &&
- text.indexOf("[spoiler]") < text.indexOf("[/spoiler]")) {
- let spoiler = text.substring(text.indexOf("[spoiler]"), text.indexOf("[/spoiler]") + 10);
- let spoilerText = text.substring(text.indexOf("[spoiler]") + 9, text.indexOf("[/spoiler]"));
- let readyTemplate = template.replace('###text###', spoilerText)
- iframe.contentWindow.document.getElementsByTagName("div")[0].innerHTML = iframe.contentWindow.document.getElementsByTagName("div")[0].innerHTML.replace(spoiler, readyTemplate);
- let btn = iframe.contentWindow.document.getElementsByClassName('btnSpoiler');
- for(let i = 0; i < btn.length; i++) {
- btn[i].addEventListener('click', showSpoiler, false);
- }
- }
- clearInterval(checkExist);
- }
- }, 1000);
- }
- function showSpoiler(obj) {
- var inner = obj.currentTarget.parentNode.getElementsByTagName("div")[0];
- if (inner.style.display == "none") {
- inner.style.display = "";
- }
- else {
- inner.style.display = "none";
- }
- }
- })();