js注入展示所有页面

有一个网页本来有20页列表数据,但只展示前10页,如何根据下面的js代码,修改进行js注入,重新加载后显示所有页面?

查看源码方式:F12-Sources-page-top-js
找到与页面加载相关js代码,源码如下:

;(function ($, window, document, undefined) {
    'use strict';
    function Paging(element, options) {
        this.element = element;
        this.options = {
            nowPage: options.nowPage || 1, // 当前页码
            pageNum: options.pageNum, // 总页码
            countTotal: options.countTotal, // 总数
			canJump: options.canJump || 0, // 是否能跳转。0=不显示(默认),1=显示
			showOne: options.showOne || 1,//只有一页时,是否显示。0=不显示,1=显示(默认)
            buttonNum: (options.buttonNum>=6?6:options.buttonNum) || 10,// 页面显示页码数量
            callback: options.callback // 回调函数
        };
        this.init();
    }
    Paging.prototype =  {
        constructor : Paging,
        init : function() {
            this.createHtml();
            this.bindClickEvent();
            this.disabled();
        },
        createHtml : function(){
            var me = this;
            var nowPage = this.options.nowPage;
            var pageNum = this.options.pageNum;
            var countTotal = this.options.countTotal;
            var buttonNum = this.options.buttonNum;
			var canJump = this.options.canJump;
			var showOne = this.options.showOne;
            var content = [];
            
			//对nowPage进行判断
			nowPage = nowPage > pageNum ? pageNum : nowPage;
			nowPage = nowPage < 1 ? 1 : nowPage;
			//如果只有一页并且设置为不显示,则不进行渲染
			if(showOne && pageNum === 1){
				return '';
			}
            var currentPageNum = $("#page").find("li.xl-active").text();
            /*
            if("1"!=nowPage){
                var  dataCode = $('#data_code').attr('data-value');//验证码
                var cont2 = $('#cont2').val();
                if(isEmpty(cont2)){
                    zdalert('提示','请输入验证码!',function(){ });
                    //$('#cont2').val("");
                    document.getElementById("data_code").click();
                    return false;
                }else if(dataCode.toLowerCase() == cont2.toLowerCase()||(pageFlag&&currentPageNum==nowPage)){
                    pageFlag = true;
                }else{
                    //忽略大小写
                    if(dataCode.toLowerCase() != cont2.toLowerCase()){
                        zdalert('提示','请输入正确的验证码!',function(){ });
                        //$('#cont2').val("");
                        document.getElementById("data_code").click();
                        return false;
                    }
                }
            }
            */
            content.push("<ul>");
            content.push("共" + countTotal + "条");
            /*
            content.push("<li class='xl-prevPage'>上一页</li>");
            //页面总数小于等于当前要展示页数总数,展示所有页面
            if(pageNum <= buttonNum){
                for(var i=1; i<=pageNum; i++){
                    if (nowPage !== i) {
                        content.push("<li>"+i+"</li>");
                    } else if(nowPage == i){
                        content.push("<li class='xl-active'>"+i+"</li>");
                    }else{
                        content.push("<li class='xl-active'>"+i+"</li>");
                    }
                }
            }else if(nowPage <= Math.floor(buttonNum / 2)){
                //当前页面小于等于展示页数总数的一半(向下取整),从1开始
                for(var i=1;i<= buttonNum-2;i++){
                    if (nowPage !== i) {
                        content.push("<li>"+i+"</li>");
                    } else {
                        content.push("<li class='xl-active'>"+i+"</li>");
                    }
                }
                content.push("<li class='xl-disabled'>...</li>");
                content.push("<li>" + pageNum + "</li>");
            }else  if(pageNum - nowPage <= Math.floor(buttonNum / 2)){
                //当前页面大于展示页数总数的一半(向下取整)
                content.push("<li>"+1+"</li>");
                content.push("<li class='xl-disabled'>...</li>");
                for(var i=pageNum-buttonNum+3; i<=pageNum; i++){
                    if (nowPage !== i) {
                        content.push("<li>"+i+"</li>");
                    } else {
                        content.push("<li class='xl-active'>"+i+"</li>");
                    }
                }
            }else{
                //前半部分页码
                if(nowPage - Math.floor(buttonNum / 2) <= 0){
                    for(var i=1;i<= Math.floor(buttonNum / 2);i++){
                        if (nowPage !== i) {
                            content.push("<li>"+i+"</li>");
                        } else {
                            content.push("<li class='xl-active'>"+i+"</li>");
                        }
                    }
                }else{
                    content.push("<li>"+1+"</li>");
                    content.push("<li class='xl-disabled'>...</li>");
                    for(var i=nowPage-Math.floor(buttonNum / 2)+(buttonNum % 2 == 0 ? 3: 2); i<=nowPage; i++){
                        if (nowPage !== i) {
                            content.push("<li>"+i+"</li>");
                        } else {
                            content.push("<li class='xl-active'>"+i+"</li>");
                        }
                    }

                }
                //后半部分页码
                if(pageNum - nowPage <= 0){
                    for(var i=nowPage+1;i<=pageNum;i++){
                        content.push("<li>" + i + "</li>");
                    }
                }else{
                    for(var i=nowPage+1; i<=nowPage+Math.floor(buttonNum / 2)-2; i++){
                        content.push("<li>"+i+"</li>");
                    }
                    content.push("<li class='xl-disabled'>...</li>");
                    content.push("<li>" + pageNum + "</li>");
                }
            }
            
            content.push("<li class='xl-nextPage'>下一页</li>");
            */
            if(pageNum >10){
                for(var i=1; i<=10; i++){
                    if (nowPage !== i) {
                        content.push("<li>"+i+"</li>");
                    } else if(nowPage == i){
                        content.push("<li class='xl-active'>"+i+"</li>");
                    }else{
                        content.push("<li class='xl-active'>"+i+"</li>");
                    }
                }
            }else{
                for(var i=1; i<=pageNum; i++){
                    if (nowPage !== i) {
                        content.push("<li>"+i+"</li>");
                    } else if(nowPage == i){
                        content.push("<li class='xl-active'>"+i+"</li>");
                    }else{
                        content.push("<li class='xl-active'>"+i+"</li>");
                    }
                }
            }
			if(canJump){
                content.push("<li class='xl-jumpText xl-disabled'>跳转到<input type='number' id='xlJumpNum' style='border:1px;跳转到'>页</li>");
				content.push("<li class='xl-jumpButton'>确定</li>");
			}
            if(pageNum>10){
                content.push("<li class='xl-disabled'>...</li>");
            }
            //content.push("共" + pageNum + "页");
            content.push("</ul>");
            me.element.html(content.join(''));
           
             // DOM重新生成后每次调用是否禁用button
            setTimeout(function () {
                me.disabled();
            }, 20);
            
        },
        bindClickEvent: function(){
            var me = this;
            me.element.off('click', 'li');
            me.element.on('click', 'li', function () {
                debugger
                var cla = $(this).attr('class');
                var num = parseInt($(this).html());
                var nowPage = me.options.nowPage;
                if( $(this).hasClass('xl-disabled') || cla === 'xl-jumpText'){
                    return '';
                }
                if (cla === 'xl-prevPage') {
                    if (nowPage !== 1) {
                        me.options.nowPage -= 1;
                    }
                } else if (cla === 'xl-nextPage') {
                    if (nowPage !== me.options.pageNum) {
                        me.options.nowPage += 1;
                    }
                }else if(cla === 'xl-jumpButton'){
                    me.options.nowPage = Number($('#xlJumpNum').val());
                }else{
					me.options.nowPage = num;
				}

                me.createHtml();
                if (me.options.callback) {
                    me.options.callback(me.options.nowPage);
                }
            });

        },
        disabled: function () {
            var me = this;
            var nowPage = me.options.nowPage;
            var pageNum = me.options.pageNum;
            if (nowPage === 1) {
                me.element.children().children('.xl-prevPage').addClass('xl-disabled');
            } else if (nowPage === pageNum) {
                me.element.children().children('.xl-nextPage').addClass('xl-disabled');
            }
        }
    }
    $.fn.paging = function (options) {
        return new Paging($(this), options);
    }
})(jQuery, window, document);

下面这个是修改了的js代码,就是删了页面小于10的判断,展开所有分页的。
修改之后在代码中注入js代码:
from js import js_s
await page.evaluate(js_s, force_expr=True)
然后在点击第二页时,就会展示所有页面按钮。

;(function ($, window, document, undefined) {
    'use strict';
    function Paging(element, options) {
        this.element = element;
        this.options = {
            nowPage: options.nowPage || 1, // 当前页码
            pageNum: options.pageNum, // 总页码
            countTotal: options.countTotal, // 总数
			canJump: options.canJump || 0, // 是否能跳转。0=不显示(默认),1=显示
			showOne: options.showOne || 1,//只有一页时,是否显示。0=不显示,1=显示(默认)
            buttonNum: (options.buttonNum>=6?6:options.buttonNum) || 10,// 页面显示页码数量
            callback: options.callback // 回调函数
        };
        this.init();
    }
    Paging.prototype =  {
        constructor : Paging,
        init : function() {
            this.createHtml();
            this.bindClickEvent();
            this.disabled();
        },
        createHtml : function(){
            var me = this;
            var nowPage = this.options.nowPage;
            var pageNum = this.options.pageNum;
            var countTotal = this.options.countTotal;
            var buttonNum = this.options.buttonNum;
			var canJump = this.options.canJump;
			var showOne = this.options.showOne;
            var content = [];
            
			//对nowPage进行判断
			nowPage = nowPage > pageNum ? pageNum : nowPage;
			nowPage = nowPage < 1 ? 1 : nowPage;
			//如果只有一页并且设置为不显示,则不进行渲染
			if(showOne && pageNum === 1){
				return '';
			}
            var currentPageNum = $("#page").find("li.xl-active").text();

            content.push("<ul>");
            content.push("共" + countTotal + "条");


            for(var i=1; i<=pageNum; i++){
                if (nowPage !== i) {
                    content.push("<li>"+i+"</li>");
                } else if(nowPage == i){
                    content.push("<li class='xl-active'>"+i+"</li>");
                }else{
                    content.push("<li class='xl-active'>"+i+"</li>");
                }
            }
            // }
			if(canJump){
                content.push("<li class='xl-jumpText xl-disabled'>跳转到<input type='number' id='xlJumpNum' style='border:1px;跳转到'>页</li>");
				content.push("<li class='xl-jumpButton'>确定</li>");
			}

            content.push("</ul>");
            me.element.html(content.join(''));
             // DOM重新生成后每次调用是否禁用button
            setTimeout(function () {
                me.disabled();
            }, 20);
            
        },
        bindClickEvent: function(){
            var me = this;
            me.element.off('click', 'li');
            me.element.on('click', 'li', function () {
                debugger
                var cla = $(this).attr('class');
                var num = parseInt($(this).html());
                var nowPage = me.options.nowPage;
                if( $(this).hasClass('xl-disabled') || cla === 'xl-jumpText'){
                    return '';
                }
                if (cla === 'xl-prevPage') {
                    if (nowPage !== 1) {
                        me.options.nowPage -= 1;
                    }
                } else if (cla === 'xl-nextPage') {
                    if (nowPage !== me.options.pageNum) {
                        me.options.nowPage += 1;
                    }
                }else if(cla === 'xl-jumpButton'){
                    me.options.nowPage = Number($('#xlJumpNum').val());
                }else{
					me.options.nowPage = num;
				}

                me.createHtml();
                if (me.options.callback) {
                    me.options.callback(me.options.nowPage);
                }
            });

        },
        disabled: function () {
            var me = this;
            var nowPage = me.options.nowPage;
            var pageNum = me.options.pageNum;
            if (nowPage === 1) {
                me.element.children().children('.xl-prevPage').addClass('xl-disabled');
            } else if (nowPage === pageNum) {
                me.element.children().children('.xl-nextPage').addClass('xl-disabled');
            }
        }
    }
    $.fn.paging = function (options) {
        return new Paging($(this), options);
    }
})(jQuery, window, document);
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值