// ==UserScript== // @name 论坛快捷回帖 // @namespace http://bmqy.net/ // @version 0.1.8 // @description 使用自定义内容或本扩展预定义的回帖内容,快捷回复支持的论坛的发帖! // @author bmqy // @match */thread*.* // @match */forum.php?mod==viewthread* // @grant GM_getValue // @grant GM_setValue // @downloadURL none // ==/UserScript== (function() { 'use strict'; function QuickReply(){ // 预定义回复内容 this.replysDefault = [ '感谢楼主分享,支持一下!', '支持一下,希望楼主做的更好,加油!', '做的不错哦,楼主加油,期待更好的作品!', '标记一下,先看看好不好,谢谢楼主咯!' ]; // 自定义回复内容 this.replysCustom = (GM_getValue('replysCustom') && GM_getValue('replysCustom').toString().trim() !== '') ? GM_getValue('replysCustom') : this.replysDefault; // 源回复框 this.targetReplyEditWarp = document.querySelector('#fastposteditor'); this.targetReplyEditContent = document.querySelector('#fastpostmessage'); } QuickReply.prototype.getQuickReply = function(){ var oQuikReplyWarp = document.createElement('div'); var oQuikReplyLabel = document.createElement('label'); oQuikReplyLabel.style = 'color:red;font-weight:bolder'; oQuikReplyLabel.innerHTML = '快捷回帖:'; var oQuikReplySelect = document.createElement('select'); oQuikReplySelect.id = 'quickReplyList'; QuickReply.updateReplysSelect(oQuikReplySelect, this.replysCustom); oQuikReplySelect.addEventListener('change', function(e){ QuickReply.targetReplyEditContent.value = this.options[this.selectedIndex].text; QuickReply.targetReplyEditContent.style.background = 'none'; }); var oQuickReplyBtnCustom = document.createElement('a'); oQuickReplyBtnCustom.innerHTML = '自定义回帖'; oQuickReplyBtnCustom.href = 'javascript:;'; oQuickReplyBtnCustom.style = "margin-left:10px;color:#999;font-size:12px;"; oQuickReplyBtnCustom.addEventListener('click', function(e){ var _posX = e.clientX; var _posY = e.clientY; var oQuickReplyCustom = document.querySelector('#quickReplyCustom'); oQuickReplyCustom.style.top = _posY - 230 +'px'; oQuickReplyCustom.style.left = _posX - 150 +'px'; oQuickReplyCustom.style.display = 'block'; }); oQuikReplyLabel.appendChild(oQuikReplySelect); oQuikReplyWarp.appendChild(oQuikReplyLabel); oQuikReplyWarp.appendChild(oQuickReplyBtnCustom); QuickReply.targetReplyEditWarp.insertBefore(oQuikReplyWarp, QuickReply.targetReplyEditWarp.childNodes[0]); }; QuickReply.prototype.getReplysCustom = function(){ var oCustomPanel = document.createElement('div'); oCustomPanel.id = 'quickReplyCustom'; oCustomPanel.style = 'width:280px;height:190px;text-align:center;background-color: #fff;padding:10px;box-shadow:0 0 3px 5px #ddd;position:fixed;left:50%;top:13%;display:none;'; var oCustomTips = document.createElement('p'); oCustomTips.style = 'text-align:left;'; oCustomTips.innerHTML = '* 一行一条,请注意回车换行'; var oCustomTextarea = document.createElement('textarea'); oCustomTextarea.style = 'width:96%;padding:5px;'; oCustomTextarea.rows = '7'; QuickReply.updateReplysCustom(oCustomTextarea, this.replysCustom); var oCustomSaveBtn = document.createElement('button'); oCustomSaveBtn.style = 'width: 100%;'; oCustomSaveBtn.innerHTML = '保存'; oCustomSaveBtn.addEventListener('click', function(){ var oQuickReplySelect = document.querySelector('#quickReplyList'); var _customReply = oCustomTextarea.value.split('\n'); var _tempArr = []; for(var i=0; i<_customReply.length; i++){ if(_customReply[i] !== ''){ _tempArr.push(_customReply[i]); } } if(_tempArr.length === 0){ _tempArr = QuickReply.replysDefault; } oCustomPanel.style.display = 'none'; QuickReply.updateReplysCustom(oCustomTextarea, _tempArr); QuickReply.updateReplysSelect(oQuickReplySelect, _tempArr); QuickReply.targetReplyEditContent.value = _tempArr[0]; GM_setValue('replysCustom', _tempArr); }); oCustomPanel.appendChild(oCustomTextarea); oCustomPanel.appendChild(oCustomTips); oCustomPanel.appendChild(oCustomSaveBtn); document.body.appendChild(oCustomPanel); }; QuickReply.prototype.updateReplysSelect = function (obj, arrReplys){ obj.options.length = 0; for(var i=0;i