您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
贴吧快速回帖
- // ==UserScript==
- // @name Fast_Reply
- // @namespace https://blog.chrxw.com/
- // @version 1.2
- // @description 贴吧快速回帖
- // @author Chr_
- // @include https://tieba.baidu.com/p/*
- // @license AGPL-3.0
- // @icon https://blog.chrxw.com/favicon.ico
- // @grant GM_setValue
- // @grant GM_getValue
- // ==/UserScript==
- // 快速回帖内容
- let VReplys = [];
- // 初始化
- (() => {
- 'use strict';
- setTimeout(() => {
- addBtns();
- initSelect()
- }, 1000);
- loadCFG();
- })();
- // 添加工具栏
- function addBtns() {
- function genSelect(id, foo) {
- let s = document.createElement('select');
- s.id = id;
- s.style.cssText = 'width:250px;';
- s.addEventListener('change', foo);
- return s;
- }
- function genButton(id, name, foo) {
- let b = document.createElement('button');
- b.id = id;
- b.textContent = name;
- b.addEventListener('click', foo);
- return b;
- }
- let btnArea = document.querySelector('.poster_component.editor_bottom_panel.clearfix');
- let panel = document.createElement('div');
- let selReply = genSelect('selReply', fastReply);
- let btnAdd = genButton('btnAdd', '【添加】', addFastReply);
- let btnDel = genButton('btnDel', '【删除】', delFastReply);
- panel.appendChild(selReply);
- panel.appendChild(btnAdd);
- panel.appendChild(btnDel);
- btnArea.appendChild(panel);
- }
- // 初始化选择框
- function initSelect() {
- function genOption(name, value) {
- let o = document.createElement('option');
- o.value = value.toString();
- o.textContent = name;
- return o;
- }
- let selReply = document.getElementById('selReply');
- selReply.innerHTML = '';
- let o = genOption('--快速回复--', -1);
- selReply.appendChild(o);
- for (let i = 0; i < VReplys.length; i++) {
- let t = VReplys[i].replace(/<\/?p>/g, ' ').replace(/<\/?br>/g, ' ').trim().slice(0, 20);
- let o = genOption(t, i);
- selReply.appendChild(o);
- }
- }
- // 快速回复
- function fastReply() {
- let selReply = document.getElementById('selReply');
- let editBox = document.getElementById('ueditor_replace');
- if (selReply.selectedOptions.length > 0) {
- let value = selReply.selectedOptions[0].value;
- let id = Number(value);
- if (id == -1) {
- return;
- }
- editBox.innerHTML = VReplys[id];
- saveCFG();
- } else {
- alert('未设置快速回复内容!');
- }
- }
- // 添加快速回复
- function addFastReply() {
- let editBox = document.getElementById('ueditor_replace');
- let msg = editBox.innerHTML;
- for (let i = 0; i < VReplys.length; i++) {
- if (msg == VReplys[i]) {
- alert('快速回复已存在!');
- return;
- }
- }
- VReplys.push(msg);
- initSelect();
- saveCFG();
- }
- // 删除快速回复
- function delFastReply() {
- let selReply = document.getElementById('selReply');
- if (selReply.selectedOptions.length > 0) {
- let value = selReply.selectedOptions[0].value;
- let id = Number(value);
- if (id == -1) {
- alert('未设置快速回复内容!');
- return;
- }
- VReplys.pop(id);
- initSelect();
- saveCFG();
- } else {
- alert('未设置快速回复内容!');
- }
- }
- // 保存设置
- function saveCFG() {
- GM_setValue('VReplys', VReplys);
- }
- // 读取设置
- function loadCFG() {
- VReplys = GM_getValue('VReplys') || [];
- }