Greasy Fork is available in English.

巴哈姆特_新版B頁板務功能

文章列表左鍵選取、右鍵選單。

От 14.12.2018. Виж последната версия.

// ==UserScript==
// @name         巴哈姆特_新版B頁板務功能
// @namespace    Bee10301
// @version      2.3
// @description  文章列表左鍵選取、右鍵選單。
// @author       Bee10301
// @match        https://forum.gamer.com.tw/B.php?*
// @homepage    https://home.gamer.com.tw/home.php?owner=bee10301
// ==/UserScript==

(function() {
    'use strict';
    window.onload=function(){
        //refresh mouse
        var BmouseX, BmouseY;
        document.onmousemove = handleMouseMove;
        function handleMouseMove(event) {
            var dot, eventDoc, doc, body,pageX, pageY;

            event = event || window.event; // IE-ism

            if (event.pageX == null && event.clientX != null) {
                eventDoc = (event.target && event.target.ownerDocument) || document;
                doc = eventDoc.documentElement;
                body = eventDoc.body;

                event.pageX = event.clientX +
                    (doc && doc.scrollLeft || body && body.scrollLeft || 0) -
                    (doc && doc.clientLeft || body && body.clientLeft || 0);
                event.pageY = event.clientY +
                    (doc && doc.scrollTop  || body && body.scrollTop  || 0) -
                    (doc && doc.clientTop  || body && body.clientTop  || 0 );
            }
            BmouseX=event.pageX;
            BmouseY=event.pageY;

        }

        ////right click
        //get manager
        var get_manage_bar = document.getElementsByClassName("managertools");
        //get btn
        var get_manage_btn = document.getElementsByClassName("btn--sm btn--ghost");
        if(window.location.href.match(/B.php/)!=null){
            get_manage_bar[0].innerHTML = "<div class='checkbox'></div><label for='check'></label><div class='bee' style='padding: 5px;'>  <button class='btn--sm btn--ghost' onclick='del()'>刪除</button>  <button class='btn--sm btn--ghost' onclick='lock()'>鎖定</button>  <button class='btn--sm btn--ghost' onclick='move_sub()'>修改子板</button></div><div class='bee' style='padding: 5px;'>  <button class='btn--sm btn--ghost' onclick='settop()'>置頂</button>  <button class='btn--sm btn--ghost' onclick='gather()'>收精華</button></div><div class='bee' style='padding: 5px;'>  <button class='btn--sm btn--ghost' onclick='recover()'>回復刪除</button>  <button class='btn--sm btn--ghost' onclick='rm()'>移除精M圖</button></div><div class='bee' style='padding: 5px;'>  <button class='btn--sm btn--ghost' onclick='location.href='listtype.php?stype=5&amp;bsn=04220&amp;subbsn=0''>刪文模式</button>  <button class='btn--sm btn--ghost' onclick='location.href='listtype.php?stype=10&amp;bsn=04220''>正常模式</button></div></div>";
            $(get_manage_bar).css({
                "position": "fixed",
                "width": "auto"
            });
        }else{
        };
        //get elements (checkbox)
        var temp_elements_checkbox = document.getElementsByName("jsn[]");
        var $all_title = document.getElementsByClassName("b-list__main");
        var temp_matcher;
        //
        for( var $i = 0; $i < $all_title.length; $i++ ) {
            $all_title[$i].onclick = function () {
                //disable manager
                $(get_manage_bar).hide();
                //get inner
                temp_matcher = this.innerHTML;
                //get snA
                temp_matcher = temp_matcher.match(/snA=(\d*)/)[1];
                for(var i2= 0 ; i2< temp_elements_checkbox.length ; i2 ++){
                    if(temp_elements_checkbox[i2].value == temp_matcher){
                        if(temp_elements_checkbox[i2].checked){
                            temp_elements_checkbox[i2].checked = false;
                            //$(this).css({"border-style":"none"});
                            $(this).css({"background-image":"linear-gradient(45deg,transparent 100%,hsla(48,20%,90%,1) 45%,hsla(48,20%,90%,1) 100%,transparent 0)"});
                        }
                        else{
                            temp_elements_checkbox[i2].checked = true;
                            //$(this).css({"border-style":"solid"});
                            $(this).css({"background-image":"linear-gradient(45deg,transparent 45%,hsla(48,20%,90%,1) 45%,hsla(48,20%,90%,1) 55%,transparent 0)",
                            "background-size": "1em 1em",
                            "-webkit-background-clip": "text",
                            "-webkit-text-fill-color": "transparent",
                            "-webkit-text-stroke": "2px #111"
                                        });
                        };
                    }
                }
            }
            //right click (*only on element)
            $all_title[$i].oncontextmenu = function () {
                var temp_scroll = window.scrollY || window.scrollTop || document.getElementsByTagName("html")[0].scrollTop;
                $(get_manage_bar).css({
                    "left":BmouseX+"px",
                    "top":BmouseY-temp_scroll+"px"
                });
                $(get_manage_bar).show();
                return false;
            }

        //end for
        }


    }
})();