GameMale
登陆 / 注册 搜索

USERCENTER

SEARCHSITE

搜索

查看: 2524|回复: 41
收起左侧

[功能优化] [油猴脚本]我的收藏|收藏页 翻页优化

[复制链接] |关注本帖

野兽之子萨菲罗斯黄色就是俏皮骑兽之子石鬼面『眼榴』不灭狂雷

     楼主| 阿不思的落胤 发表于 2024-7-22 20:26:31 | 显示全部楼层 |阅读模式 <
    本帖最后由 阿不思的落胤 于 2024-7-22 20:33 编辑

    众所周知,平时看帖的时候是可以方向键左右按来翻页的,但是, 我的收藏|收藏页 是不支持的,如果想在自己的收藏中找到自己印象中的那个主题,那就只能一次又一次点击下一页,然后往下滑,再点击下一页........

    本次功能优化就是简化收藏页的翻页操作,此页面也可以用左右方向键来翻页了,并且翻页内容会直接追加到底部,页面无需刷新!!!


    @Name @Name @match


    油猴脚本如下(也许后续会继续优化,但是应该会新开一帖,新开的话本帖会放链接)(我真的幻想你坛要是支持markdown该多方便啊...id叫Name的和id叫Match的真的很烦!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)
    (如果下面有@开头的内容被<xxx></xxx>包围了的话自己去掉吧,我懒得弄了)
    1. // ==UserScript==
    2. // @name      GM论坛收藏页方向键控制上一页下一页
    3. // @namespace    www.gamemale.com
    4. // @version      2024-07-20
    5. // @description  个人收藏界面,左方向键上一页,右方向键下一页
    6. // @author       阿不思的落胤
    7. //  @match     https://www.gamemale.com/home.php?mod=space&do=favorite&view=me
    8. // @match        https://www.gamemale.com/home.php?mod=space&uid=*&do=favorite*
    9. // @grant        none
    10. // ==/UserScript==

    11. (function() {
    12.     'use strict';
    13.     var nxtButton = document.getElementsByClassName("nxt")[0];
    14.     var prevButton = document.getElementsByClassName("prev")[0];
    15.     //url模板,填id和page后发请求要用
    16.     var urlPattern = 'home.php?mod=space&uid=*&do=favorite&type=all&page=*';
    17.     //当前浏览器地址
    18.     var curLocation = document.location;
    19.     //当前域名
    20.     var curOrigin = curLocation.origin;
    21.     //当前请求参数字符串
    22.     var curSearch = curLocation.search;
    23.     //当前请求参数
    24.     var curSeachParams = new URLSearchParams(curSearch);

    25.     //获取id,此处获取方式为下一页按钮的href中获取
    26.     var buttonHref;
    27.     //待添加对nxtButton的判空
    28.     if(nxtButton !== undefined){
    29.         buttonHref = nxtButton.href;
    30.     }else{
    31.         buttonHref = prevButton.href;
    32.     }
    33.     var uid;
    34.     var startIndex = buttonHref.indexOf('?')
    35.     var hrefSearchParams = new URLSearchParams(buttonHref.slice(startIndex));
    36.     uid = hrefSearchParams.get('uid');
    37.     //获取page
    38.     var page;
    39.     if (curSeachParams.has('page')){
    40.         //有参数则获取当前页
    41.         page = curSeachParams.get('page');
    42.     }else{
    43.         //否则默认第1页
    44.         page = '1';
    45.         //跳转到有页数的url
    46.         document.location.href = urlPattern.replace('uid=\*','uid='+uid).replace('page=\*','page=' + page);
    47.     }

    48.     var pageInt = parseInt(page);
    49.     var nxtPage = pageInt + 1;
    50.     var prevPage = pageInt - 1;
    51.     var newUrl;
    52.     document.addEventListener("keyup",function(e){
    53.         if (e.key === "ArrowRight"){
    54.             getPageData(true);
    55.         }
    56.         if (e.key === "ArrowLeft"){
    57.             getPageData(false);
    58.         }

    59.     },false);
    60.     //定义一个请求下一页数据的函数
    61.     function getPageData(direction){
    62.         //如果的前翻页
    63.         if(!direction){
    64.             if(prevPage < 1){
    65.                 alert("不能再往前翻了,已经到头了");
    66.                 return;
    67.             }
    68.             newUrl = urlPattern.replace('uid=\*','uid='+uid).replace('page=\*','page=' + prevPage--);
    69.         }
    70.         else{
    71.             newUrl = urlPattern.replace('uid=\*','uid='+uid).replace('page=\*','page=' + nxtPage++);
    72.         }
    73.         let xhr = new XMLHttpRequest();
    74.         xhr.open('post',curOrigin+'/'+newUrl,true);//异步
    75.         xhr.setRequestHeader('Accept','text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7');
    76.         xhr.reponseType = 'document';
    77.         xhr.overrideMimeType('text/html');
    78.         xhr.addEventListener('load',function(){
    79.             if(xhr.readyState === 4){
    80.                 if((xhr.status >= 200 && xhr.status < 300)
    81.                    || (xhr.status === 304)){
    82.                     var parser = new DOMParser();
    83.                     getAndAppendResponse(parser.parseFromString(xhr.responseText, "text/html"),this.direction);

    84.                 }
    85.                 //状态码不对的话尝试获取服务器返回的信息
    86.                 else{
    87.                     console.error(xhr.statusText);
    88.                     alert(xhr.statusText);
    89.                 }
    90.             }
    91.         });
    92.         //10秒超时
    93.         xhr.timeout = 10 * 1000;
    94.         xhr.send();
    95.     }

    96.     //定义一个操作返回数据DOM的函数
    97.     function getAndAppendResponse(XML,dirction){
    98.         if(!XML){
    99.             return;
    100.         }
    101.         //debugger;
    102.         let responseUl = XML.getElementById('favorite_ul');
    103.         if(!responseUl){
    104.             alert("不能再往后翻了,已经到底了");
    105.             return;
    106.         }
    107.         var FavoriteUl = document.getElementById('favorite_ul');
    108.         let responseLis = responseUl.childNodes;
    109.         responseLis.forEach(
    110.             function(childNode){
    111.                 FavoriteUl.append(childNode);
    112.             }
    113.         );

    114.         if (curSeachParams.has('page')){
    115.             history.replaceState(null,'',curOrigin+'/'+newUrl);
    116.         }else{
    117.             //todo
    118.         }
    119.     }

    120. })();
    复制代码




    评分

    参与人数 4血液 +5 追随 +4 堕落 +1 收起 理由
    thh866 + 1
    li漠北 + 1 很给力!
    瓦尼 + 1
    Morphyus + 5 + 1 + 1

    查看全部评分

    已有1人关注本帖

    liuhuo0
    回复

    使用道具 举报

    弗雷迪玩偶发条八音盒桂花米糕鎏彩万幢女巫之路虚空之海的鲸【新春限定】果体 隆『召唤好运的角笛』永远的克叔業火死鬥

      娱乐法师火布偶 发表于 2024-7-22 20:40:45 | 显示全部楼层 <
      很适合收藏夹爆满的坛友使用呢
        收起(1)
      回复

      使用道具 举报

      漂洋小船冒险用指南针破损的旧书人鱼之泪雪王的心脏苏格兰圆脸胖鸡[Pro Max]丛林的鸟飞走了不曾寄出的信件幽灵竹筒『随时随地开启!』

        凯诺斯 发表于 2024-7-22 20:46:48 | 显示全部楼层 <
        回复

        使用道具 举报

        剑指撒冷凯登‧阿兰科诺曼底号猎户座的明珠缘起星空赛博朋克2077自定义男从Homunculus检定场命运的轮廓旅行骰子!

          Morphyus 发表于 2024-7-22 20:54:01 | 显示全部楼层 <
          不知道有没有收藏夹分类功能
          回复

          使用道具 举报

          『伊黎丝的赞美词』『逆境中的幸运女神』『狄文卡德的残羽』璀璨金币幸运女神的微笑小小安全帽

            jiarong28 发表于 2024-7-22 20:58:05 | 显示全部楼层 <
            回复

            使用道具 举报

            这是怎么辉石呢吃了一半的面包死亡化身BIG BOSS实现梦想官复原职召唤兽拉姆寶可夢 Pokémon双重身份擎天柱(Peterbilt389)

              糖醋鲤鱼 发表于 2024-7-22 21:00:18 | 显示全部楼层 <
              回复

              使用道具 举报

              卡斯迪奥山猫图腾猎鹰图腾驯化黑龙幼崽肥皂上古卷轴V:天际阿列克西欧斯(Alexios)安德森‧戴维斯罗根

                kook 发表于 2024-7-22 21:31:50 | 显示全部楼层 <
                回复

                使用道具 举报

                检定场内在命运的轮廓英普瑞斯炽焰咆哮虎亚瑟‧摩根業火死鬥人间之神

                  momohang 发表于 2024-7-22 21:36:38 | 显示全部楼层 <
                  回复

                  使用道具 举报

                  净化污秽的天照合作小小安全帽驯化黑龙幼崽幽浮起司煲月影狼失败的封印仪式黑暗之魂系列

                    瓦尼 发表于 2024-7-22 21:36:41 | 显示全部楼层 <
                    Name Match如果有图标还有icon三个都出过错XD 页面加载不用刷新当前已加载内容很方便,不用来回翻了。
                    回复

                    使用道具 举报

                    纯真护剑㊕星芒戒指桂花米糕弗雷迪玩偶发条八音盒『樱花树灵』

                      MoJIJI 发表于 2024-7-22 21:49:14 | 显示全部楼层 <
                      回复

                      使用道具 举报

                      虚空之海的鲸『钜鲸』守卫: 坚守眼位御医神兔哀恸魔蝶镜中小鸟孔明灯菀叶狸猫猪庇特小狮欢舞

                        cdcai 发表于 2024-7-22 21:59:01 | 显示全部楼层 <
                        回复

                        使用道具 举报

                        我的天使GM吸血伯爵吃饱金币的Doge苏格兰圆脸胖鸡小小舞台守卫: 坚守眼位永浴爱河肉垫手套御医神兔『搓粉团珠』

                          毛茸茸兽兽 发表于 2024-7-22 22:11:28 | 显示全部楼层 <
                          回复

                          使用道具 举报

                          金钱马车『逆境中的幸运女神』裸体克里斯【圣诞限定】心心念念小雪人【夏日限定】夏日的泰凯斯永远的克叔史莱姆牧场虚空之海的鲸男巫之歌诺曼底号

                            前方无怪 发表于 2024-7-22 22:14:22 | 显示全部楼层 <
                            回复

                            使用道具 举报

                            亚瑟‧摩根【夏日限定】夏日的泰凯斯我的冶金打火机【新春限定】果体 隆诡异的灵魂石极·龙の意和你一起飞行的皮卡丘虚空之海的鲸史莱姆牧场

                              DiederichYH 发表于 2024-7-22 22:25:21 | 显示全部楼层 <
                              回复

                              使用道具 举报

                              纯真护剑 · 这把剑守护每个孩子无论他有没有被神选中『厢庭望远』诺克史黛拉之月40x43 隐形➀16x43 隐形➀无光余烬20x43 隐形➀40x43 隐形➁『落樱缤纷』缘起星空

                                lostorage 发表于 2024-7-22 22:38:40 | 显示全部楼层 <
                                回复

                                使用道具 举报

                                暮狼归来红莲狂潮暮光独角兽幼崽洗刷的了海盗刀枪装饰触手Ⓛ装饰触手Ⓡ勋章空位插槽钢铁侠火柴 - Gamemale

                                  青藤暮夏 发表于 2024-7-22 22:51:55 | 显示全部楼层 <
                                  我甚至还不知道左右划可以翻页,不过也感谢楼主写脚本啦
                                  回复

                                  使用道具 举报

                                  裸体克里斯站长の守护克里斯‧雷德菲尔德Chris Redfield in Uroboros凯登‧阿兰科史莱姆牧场吃饱金币的Doge但丁肥皂皮尔斯‧尼凡斯

                                    Samwise‘Sam’ 发表于 2024-7-22 23:18:46 | 显示全部楼层 <
                                    回复

                                    使用道具 举报

                                    桂花米糕万众瞩目黑暗封印千年积木

                                      164895785 发表于 2024-7-23 00:04:57 | 显示全部楼层 <
                                      回复

                                      使用道具 举报

                                      鎏彩万幢Zootopia都市:天际线2叶卡捷琳娜大帝传奇实现梦想官复原职丹雀衔五穗,人间始丰登丹妮莉丝·坦格利安刀锋女王 - 归宿

                                        威风妖怪麒麟 发表于 2024-7-23 00:42:34 | 显示全部楼层 <
                                        回复

                                        使用道具 举报

                                        亚索月影狼晓月终焉旅行骰子!卡利亚权杖

                                          黑达克 发表于 2024-7-23 00:46:12 | 显示全部楼层 <
                                          我现在才知道帖子内可以用左右键翻页
                                          回复

                                          使用道具 举报

                                          您需要登录后才可以回帖 登录 | 立即注册

                                          本版积分规则

                                          关闭

                                          站长公告上一条 /1 下一条

                                          文字版|手机版|小黑屋|GameMale

                                          GMT+8, 2025-12-6 08:48 , Processed in 0.197631 second(s), 148 queries , Redis On.

                                          Copyright © 2013-2025 GameMale

                                          All Rights Reserved.

                                          快速回复 返回列表