Greasy Fork

来自缓存

Greasy Fork is available in English.

U2聊天框添加BBCODE按钮

聊天框添加BBCODE快捷插入按钮

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         U2聊天框添加BBCODE按钮
// @namespace    https://github.com/AisukaYuki/U2-CHATBOX-BBCODE
// @version      0.0.3.6
// @description  聊天框添加BBCODE快捷插入按钮
// @author       アイスカユキ
// @match        *://u2.dmhy.org/*
// @exclude      *://u2.dmhy.org/forums.php*
// @exclude      *://u2.dmhy.org/addoffer.php*
// @exclude      *://u2.dmhy.org/upload.php*
// @exclude      *://u2.dmhy.org/contactstaff.php*
// @exclude      *://u2.dmhy.org/edit.php*
// @exclude      *://u2.dmhy.org/comment.php*
// @exclude      *://u2.dmhy.org/sendmessage.php*
// @icon         https://u2.dmhy.org/favicon.ico
// @supportURL   https://github.com/AisukaYuki/U2-CHATBOX-BBCODE
// @homepageURL  https://github.com/AisukaYuki/U2-CHATBOX-BBCODE
// @license      MIT

// ==/UserScript==

//初版测试没有实时预览,后续再完善

(function() {
    'use strict';
    var bb_tag = $('[name="shbox"] > div');
    var btn_pre = '<a><addr title="例子:';
    var btn_min = '"><input class="bbcode" id="';
    var btn_aft = '" type="button" value="';
    var btn_fin = '"></a>';

    var btn_list = '<span style="font-weight: bold;position: relative;font-size: 14px;">聊天常用:</span>';
    btn_list += btn_pre + '[b]这是粗体。[/b]' + btn_min + 'b' + btn_aft + '粗体' + btn_fin;
    btn_list += btn_pre + '[i]这是斜体。[/i]' + btn_min + 'i' + btn_aft + '斜体' + btn_fin;
    btn_list += btn_pre + '[u]这是下划线。[/u]' + btn_min + 'u' + btn_aft + '下划' + btn_fin;
    btn_list += btn_pre + '[s]这是删除线。[/s]' + btn_min + 's' + btn_aft + '删除' + btn_fin;
    btn_list += '<a><addr title="选择后点击插入"> <b style="cursor: default;">颜色:</b><input value="#ff0000" class="color_s" id="color_s" type="color"></a>';
    btn_list += btn_pre + '[color=red/#RGB]这是红色[/color]' + btn_min + 'color' + btn_aft + '插入' + btn_fin;
    btn_list += '<a><addr title="选择后点击插入"> <b style="cursor: default;">大小:</b><select id="text_s"><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option></select></a>';
    btn_list += btn_pre + '[size=4]这是4号字的文字。[/size]' + btn_min + 'size' + btn_aft + '插入' + btn_fin;
    btn_list += btn_pre + '[url=链接]文本[/url]' + btn_min + 'url' + btn_aft + '链接"><div class="_box" id="url_box"><div>地址:<input id="url_addr" type="text"></div><div>描述:<input id="url_dis" type="text"></div><input id="url_send" type="button" value="插入"></div></a>';
    btn_list += btn_pre + '[img]图片链接[/img]' + btn_min + 'img' + btn_aft + '图片' + btn_fin;
    btn_list += btn_pre + '[code]这是代码文本。[/code]' + btn_min + 'code' + btn_aft + '代码' + btn_fin;
    btn_list += btn_pre + "[spoiler='剧透是不可能的!']真的![/spoiler]" + btn_min + 'spoiler' + btn_aft + '剧透"><div class="_box" id="sp_box"><div>标题:<input id="sp_text" type="text"></div><div>内容:<input id="sp_dis" type="text"></div><input id="sp_send" type="button" value="插入"></div></a>';
    btn_list += '<a href="tags.php"><addr title="更多BBCODE"' + btn_min + '' + btn_aft + '更多' + btn_fin;

    bb_tag.prepend(btn_list + '<br>');

    var text;
    function box_focus(){
        //面向百度编程(wwww

        var text_pos = text.indexOf("/");
        var move_pos = text_pos - 1;
        (function($) {
            $.fn.extend({
                insertAtCaret: function(myValue) {
                    var $t = $(this)[0];
                    if (document.selection) {
                        this.focus();
                        sel = document.selection.createRange();
                        sel.text = myValue;
                        this.focus();
                    } else
                    if ($t.selectionStart || $t.selectionStart == '0') {
                        var startPos = $t.selectionStart;
                        var endPos = $t.selectionEnd;
                        var scrollTop = $t.scrollTop;
                        $t.value = $t.value.substring(0, startPos) + myValue + $t.value.substring(endPos, $t.value.length);
                        this.focus();
                        $t.selectionStart = startPos + myValue.length;
                        $t.selectionEnd = startPos + move_pos;
                        $t.scrollTop = scrollTop;
                    } else {
                        this.value += myValue;
                        this.focus();
                    }
                }
            })
        })(jQuery);

        //面向百度编程(wwww
    };

    var color_val = '#ff0000';
    $("#color_s").change(function(){
        color_val= $("#color_s").val();
    });

    var text_val = '1';
    $("#text_s").change(function(){
        text_val= $("#text_s").val();
    });

    function url_on(){
        $("#url_box").css("display","inline-block");
    };

    $("#url_send").click(function(){

        text = '[url='+ $("#url_addr").val() + ']' + $("#url_dis").val() + '[/url]';
        box_focus();
        $("#shbox_text").insertAtCaret(text);
        $("#url_dis").val("");
        $("#url_addr").val("");
        $("#url_box").css("display","none");
    });

    function sp_on(){
        $("#sp_box").css("display","inline-block");
    };

    $("#sp_send").click(function(){

        text = '[spoiler='+ $("#sp_text").val() + ']' + $("#sp_dis").val() + '[/spoiler]';
        box_focus();
        $("#shbox_text").insertAtCaret(text);
        $("#sp_dis").val("");
        $("#sp_text").val("");
        $("#sp_box").css("display","none");
    });
    $(".bbcode").click(function() {
        var btn_click = $(this).attr("id");
        switch (btn_click) {
            case ('b'):
                text = '[b][/b]';
                break;
            case ('i'):
                text = '[i][/i]';
                break;
            case ('u'):
                text = '[u][/u]';
                break;
            case ('s'):
                text = '[s][/s]';
                break;
            case ('color'):
                text = '[color=' + color_val + '][/color]';
                break;
            case ('size'):
                text = '[size=' + text_val + '][/size]';
                break;
            case ('url'):
                url_on();
                return;
            case ('img'):
                text = '[img][/img]';
                break;
            case ('code'):
                text = '[code][/code]';
                break;
            case ('spoiler'):
                sp_on();
                return;
            default:
                break;
        }
        box_focus();
        $("#shbox_text").insertAtCaret(text);
    })

    $(".bbcode").css({
        "display": "inline-block",
        "position": "relative",
        "margin-top": "2px",
        "margin-right": "1px",
        "padding": "1px"
    });
    $(".color_s").css({
        "display": "inline-block",
        "position": "relative",
        "margin-right": "1px",
        "height": "22px",
        "width": "30px",
        "padding": "1px"
    });
    $(".eg").css({
        "display": "inline-block",
        "position": "relative",
        "bottom": "-15px",
        "left": "100px"
    });
    $("._box").css({
        "display": "none",
        "position": "absolute",
        "margin-left": "-108px",
        "margin-top": "25px",
        "padding": "2px",
        "border": "2px",
        "border-radius": "4px",
        "border-style": "solid",
        "border-color": "#5b6f83",
        "background-color": "#6e89a0"
    });
})();