两键复制QQ群成员

一键复制QQ群成员管理页所有成员的QQ号

目前为 2016-04-13 提交的版本。查看 最新版本

// ==UserScript==
// @name         两键复制QQ群成员
// @namespace    http://qun.qq.com/
// @version      0.1
// @description  一键复制QQ群成员管理页所有成员的QQ号
// @author       You
// @match        http://qun.qq.com/member.html
// @grant        none
// ==/UserScript==

function scrollToBottom (callback) {

    var TIMES = 1000  // 最多滚动10次,防止无限加载
    , INTERVAL = 1000  // 每次滚动之间的间隔时间,太短有可能不会触发懒加载事件
    , delta = 1500    // 每次的滚动距离,太长有可能导致之间有的部分未加载
    , preScrollTop = 0  // 滚动前的 window.scrollTop 值
    , curScrollTOp = 0;  // 滚动后的 window.scrollTop 值

    var scroll = function () {
        preScrollTop = $(window).scrollTop();
        TIMES --;
        $(window).scrollTop(preScrollTop + delta);
    };

    scroll();

    var timer = setInterval(function () {

        curScrollTOp = $(window).scrollTop();

        if (TIMES <= 0 || (curScrollTOp - preScrollTop) <= 3 ) {
            // 滚动结束
            clearInterval(timer);
            preScrollTop = 0;  // 滚动前的 window.scrollTop 值
            curScrollTOp = 0;
            return callback();
        }

        scroll();

    }, INTERVAL);

}

(function() {
    'use strict';
    $('body').append('<script src="//cdn.bootcss.com/clipboard.js/1.5.9/clipboard.min.js"></script>');
    setTimeout(function(){
        $('#groupMemberTit').append('<button class="add-member" id="doload">加载全部</button>');
        $('#groupMemberTit').append('<button class="add-member" id="docopy">复制QQ号</button>');
        $(document).on('click', '#doload', function(){
            console.log('load');
            scrollToBottom(function(){
                $('#groupMemberTit').append('<button class="add-member" id="doload">加载全部</button>');
                $('#groupMemberTit').append('<button class="add-member" id="docopy">复制QQ号</button>');
                $(window).scrollTop(0);
                alert('加载完成');
            });
        });
        var clipboard = new Clipboard('#docopy', {
            text: function(trigger) {
                var all_qq = '';
                $('#groupMember tr').each(function(){
                    var qq = $.trim($(this).find('td').eq(4).text());
                    if(!!qq.length){
                        // console.log(qq);
                        all_qq = all_qq + qq + '\n';
                    }
                });
                all_qq = all_qq.substr(0, all_qq.length - 1);
                return all_qq;
            }
        });
        clipboard.on('success', function(e) {
            alert('复制成功');
        });
        console.log('ok');
    }, 3000);
})();