hjj工具

去刷屏,楼层无图

当前为 2017-06-06 提交的版本,查看 最新版本

// ==UserScript==
// @name         hjj工具
// @namespace    http://tampermonkey.net/
// @version      0.6.2
// @description  去刷屏,楼层无图
// @author       miaomiao
// @match        http://bbs.jjwxc.net/board.php?board=*&type=*&page=*
// @match        http://bbs.jjwxc.net/showmsg.php?board=*&boardpagemsg=*&id=*
// @match        http://bbs.jjwxc.net/board.php?board=*&page=*
// @match        http://bbs.jjwxc.net/showmsg.php?board=*&id=*
// @grant        none
// ==/UserScript==

(function () {
        'use strict';

        var mainElements = $("[id=topic]");
        window.topicWidth = mainElements.width();
        $("a[class^='quotereply']").hide();

        mainElements.each(function (index) {
                var element = $(this);
                Spam(index, element);
                HidePictures(index, element);
        });

        function Spam(index, element) {
               //console.log(element);
                var height = element.height();
                var lineHeight = parseInt(element.css("line-height"));
                var picHeight = CalPicHeight(element);
                var rowsCount = (height - picHeight) / lineHeight;
                var maxRowsCount = 40;
                var flag = rowsCount > maxRowsCount ? true : false;
                if (flag) {
                        var rowNum = 0;
                        var picHtml = "";
                        element.find("img").each(function () {
                                picHtml += $(this).prop("outerHTML");
                        });

                        var allText = element.text().split("\n");
                        var shownText = "";
                        var hidenText = "";
                        var flag = true;
                        $.each(allText, function (index, value) {
                                var partTextWidth = GetTextWidth(value);
                           // console.log(partTextWidth);
                                var rowNumInOnePart = 0;

                                if (partTextWidth > topicWidth) {
                                        rowNumInOnePart += partTextWidth / topicWidth + 1;
                                } else {
                                        rowNumInOnePart = 1;
                                }

                                if (rowNum + rowNumInOnePart > maxRowsCount) {
                                        rowNum += rowNumInOnePart;
                                        return true;
                                }
                                rowNum += rowNumInOnePart;
                        });
                    
                        var elementText=element[0].innerHTML;
                        element.html("");
                        element.append("<p>本楼共" + rowsCount  + "行</p><a href='javascript:;' id='shownText" + index + "'>点击显示全部</a> <span id='hideText" + index + "' style='display:none'><br>" + elementText + "<a href='javascript:;' id='hideTextHref" + index + "'>隐藏</a></span>" + picHtml);
                }

                $(document).on("click", "#shownText" + index, function () {
                        if (flag) {
                                $("#shownText" + index).text("隐藏");
                                $("#hideText" + index).show();
                                flag = false;
                        } else {
                                $("#shownText" + index).text("点击显示全部");
                                $("#hideText" + index).hide();
                                flag = true;
                        }
                });
                $(document).on("click", "#hideTextHref" + index, function () {
                        $("#shownText" + index).text("点击显示全部");
                        $("#hideText" + index).hide();
                        flag = true;

                });
        }

        function HidePictures(index, element) {
                var hideHtml = "<p><a href='javascript:;' id='hidePic" + index + "'>显示此楼图片</a></p>";
                var flag = true;
                var picHtml = "";
                var picNode = element.find("img");
                if (picNode.length !== 0) {
                        element.html(hideHtml + element.html());
                        picNode = element.find("img").hide();
                }
                $("#hidePic" + index).click(function () {
                        if (flag) {
                                $("#hidePic" + index).text("隐藏此楼图片");
                                picNode.show();
                                flag = false;
                        } else {
                                $("#hidePic" + index).text("显示此楼图片");
                                picNode.hide();
                                flag = true;
                        }
                });
        }

        function CalPicHeight(element) {
                var height = 0;
                element.find("img").each(function () {
                        height += $(this).height();
                });
                return height;
        }

        function GetTextWidth(str) {
                var width = $('body').append($('<span stlye="display:none;" id="textWidth"/>')).find('#textWidth').html(str).width();
                $('#textWidth').remove();
                return width;
        }

})();