上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

请大神看下X浏览器为什么不支持这个脚本

[复制链接]
  • TA的每日心情

    2022-10-20 12:29
  • 签到天数: 2 天

    [LV.1]初来乍到

    1

    主题

    0

    回帖

    3

    积分

    助理工程师

    积分
    3
    发表于 2022-10-19 21:24:52 | 显示全部楼层 | 阅读模式
    悬赏20油猫币已解决

    本帖最后由 unwake 于 2022-10-19 21:26 编辑

    网站是通过fetch /api/user 来决定当前用户是不是VIP,我写了个脚本,通过替换返回值来伪装VIP用户
    下面的脚本在edgev106桌面版本+tempermonkey测试通过,装到X浏览器上就无效。希望您能指出下面的脚本哪些地方
    需要改动下,好适用于X浏览器

    目标是fetch /api/user返回的
    "paid":false,"paypal":false,"expired":true,"expireInDays":-346'
    替换成
    '"paid":true,"paypal":true,"expired":false,"expireInDays":346'
    替换后的效果

    微信截图_20221019212006.png

    
    但是我在手机X浏览器上却没有效果,请问为什么?
    
    // ==UserScript==
    // @name         ReabbleVIP
    // @namespace    GuoQingyuan
    // @version      0.1
    // @description  Change your Reabble account to VIP
    // @author       GuoQingyuan
    // @match        https://reabble.cn/app
    // @icon         https://reabble.cn/static/img/icons/favicon.ico
    // @grant        none
    // ==/UserScript==
    
    (function() {
        'use strict';
    
        // Your code here...
        let oldfetch = fetch;
    function fuckfetch() {
        return new Promise((resolve, reject) => {
            oldfetch.apply(this, arguments).then(response => {
                if (arguments[0].indexOf('/api/user') > -1) {
    
                    const oldtext = response.text;
                    response.text = function() {
                        return new Promise((resolve, reject) => {
                            oldtext.apply(this, arguments).then(result => {
                                result = result.replace('"paid":false,"paypal":false,"expired":true,"expireInDays":-','"paid":true,"paypal":true,"expired":false,"expireInDays":');
                                console.log(result)
                                resolve(result);
                            });
                        });
                    };
                };
                resolve(response);
            });
        });
    }
    window.fetch = fuckfetch;
    })();
    

    最佳答案

    查看完整内容

    //@ run-at document-start这个对X浏览器基本无效 设置后在X浏览器。油猴脚本的加载时机是随机的,有的快有的慢。并不能保证最早注入 导致依赖这个document-start API的脚本失效,网页载入时,行为无法预测。 目前也找不到合适的解决方案,折中方案就是在网页载入完毕后,重新发送所有没有被拦截的网络请求。 另外,X浏览器还有一个跟其他管理器区别的特性,就是网址锚点变动后,脚本会重复加载。 比如你这个网址载入时会这样变化 ...
  • TA的每日心情
    开心
    2022-11-13 00:00
  • 签到天数: 33 天

    [LV.5]常住居民I

    0

    主题

    19

    回帖

    45

    积分

    初级工程师

    积分
    45
    发表于 2022-10-19 21:24:53 | 显示全部楼层
    //@ run-at document-start这个对X浏览器基本无效
    设置后在X浏览器。油猴脚本的加载时机是随机的,有的快有的慢。并不能保证最早注入
    导致依赖这个document-start API的脚本失效,网页载入时,行为无法预测。
    目前也找不到合适的解决方案,折中方案就是在网页载入完毕后,重新发送所有没有被拦截的网络请求。

    另外,X浏览器还有一个跟其他管理器区别的特性,就是网址锚点变动后,脚本会重复加载。
    比如你这个网址载入时会这样变化:
    1. https://reabble.cn/app ==> https://reabble.cn/app#/login
    复制代码

    这时脚本就会被加载两遍,我在其他管理器也没有发现这种特性。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5966

    回帖

    6764

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6764

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2022-10-19 21:34:55 | 显示全部楼层
    这个太为难我们了...
    X浏览器貌似论坛没见过有人用过
    可以考虑每一步打个alert断点看看到底到哪里没执行
    也可能脚本都没执行...
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 16:47
  • 签到天数: 814 天

    [LV.10]以坛为家III

    31

    主题

    552

    回帖

    1557

    积分

    荣誉开发者

    积分
    1557

    荣誉开发者新人进步奖油中2周年生态建设者新人报道挑战者 lv2油中3周年喜迎中秋

    发表于 2022-10-19 21:41:08 | 显示全部楼层

    劫持fetch可能需要在元信息里面加一行
    //@ run-at document-start

    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-3-8 11:41
  • 签到天数: 2 天

    [LV.1]初来乍到

    22

    主题

    881

    回帖

    1379

    积分

    荣誉开发者

    积分
    1379

    荣誉开发者卓越贡献油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-10-19 21:51:35 | 显示全部楼层
    我用过X、Via等,对油猴API的支持没有想象中那么好,建议换Kiwi。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    1 小时前
  • 签到天数: 666 天

    [LV.9]以坛为家II

    13

    主题

    144

    回帖

    398

    积分

    高级工程师

    积分
    398

    油中2周年

    发表于 2022-10-20 14:15:17 | 显示全部楼层
    cxxjackie 发表于 2022-10-19 21:51
    我用过X、Via等,对油猴API的支持没有想象中那么好,建议换Kiwi。

    怪不到我via装油猴脚本没反应  换kiwi了
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表