您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Force the browser to ask you before leaving a page with an unfinished post.
// ==UserScript== // @name IP.Board Post Loss Prevention // @namespace Makaze // @include * // @grant none // @version 1.0.6 // @description Force the browser to ask you before leaving a page with an unfinished post. // ==/UserScript== var i = 0; // Classes constructor function ClassHandler() { var self = this; this.classList = function(elem) { return elem.className.trim().split(/[\b\s]/); }; this.hasClass = function(elem, className) { var classes = self.classList(elem), has = false, i = 0; for (i = 0; i < classes.length; i++) { if (classes[i] === className) { has = true; break; } } return (has); }; this.addClass = function(elem, className) { var classes; if (!self.hasClass(elem, className)) { classes = self.classList(elem); classes.push(className); elem.className = classes.join(' ').trim(); } return self; }; this.removeClass = function(elem, className) { var classes = self.classList(elem), i = 0; for (i = 0; i < classes.length; i++) { if (classes[i] === className) { classes.splice(i, 1); } } elem.className = classes.join(' ').trim(); return self; }; this.toggleClass = function(elem, className) { var classes; if (self.hasClass(elem, className)) { self.removeClass(elem, className); } else { classes = self.classList(elem); classes.push(className); elem.className = classes.join(' ').trim(); } return self; }; } // Initialize var Classes = new ClassHandler(); // End Classes constructor if (document.body.id === 'ipboard_body') { window.onbeforeunload = function() { var confirmationMessage = "You have an unsaved post."; if (document.getElementsByClassName('cke_contents') && typeof(document.getElementsByClassName('cke_contents')) != 'undefined') { for (i = 0; i < document.getElementsByClassName('cke_contents').length; i++) { if (typeof(document.getElementsByClassName('cke_contents')[i].getElementsByTagName('iframe')[0]) != 'undefined' && document.getElementsByClassName('cke_contents')[i].getElementsByTagName('iframe')[0].contentWindow.document.body.textContent.length) { return confirmationMessage; } else if (typeof(document.getElementsByClassName('cke_contents')[i].getElementsByTagName('textarea')[0]) != 'undefined' && document.getElementsByClassName('cke_contents')[i].getElementsByTagName('textarea')[0].value.length) { return confirmationMessage; } } } }; var listener = function(event) { if (event.target.className && Classes.hasClass(event.target, 'input_submit')) { window.onbeforeunload = null; } }; document.addEventListener('click', listener, false); }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址