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

实战百度自定义分享码求助

[复制链接]
  • TA的每日心情
    无聊
    2023-8-27 10:38
  • 签到天数: 1 天

    [LV.1]初来乍到

    11

    主题

    35

    回帖

    59

    积分

    初级工程师

    积分
    59

    油中2周年喜迎中秋

    发表于 2023-9-24 17:34:37 | 显示全部楼层 | 阅读模式
    悬赏2油猫币已解决

    本帖最后由 梦泽宇 于 2023-9-24 17:43 编辑

    本帖最后由 梦泽宇 于 2023-9-24 17:42 编辑

    本帖最后由 梦泽宇 于 2023-9-24 17:37 编辑

    原教程链接:https://bbs.tampermonkey.net.cn/thread-877-1-1.html
    练习代码:

    // ==UserScript==
    // @name         EX——百度网盘
    // @namespace    http://tampermonkey.net/
    // @version      0.1
    // @description  try to take over the world!
    // @author       You
    // @match        https://pan.baidu.com/*
    // @icon         https://www.google.com/s2/favicons?sz=64&domain=baidu.com
    // @grant        none
    // ==/UserScript==
    
    // 1. 创建 XHR 对象
    console.log("=============================")
    // 2. 调用 open 函数,保存url——为了后续send修改时判断是否是需要的那个url
    let hookOpen = XMLHttpRequest.prototype.open
    XMLHttpRequest.prototype.open = (method, url, async, user, password) => {
        this._url = url
        console.log(this._url)
        return hookOpen.call(this, method, url, async, user, password)
    }
    
    let hookSend = XMLHttpRequest.prototype.send
    XMLHttpRequest.prototype.send = () => {
        //找到需要的那个链接
        if(this._url && this._url.indexOf && this._url.indexOf("share/set")){
            //判断是否包含需要修改的数据
            console.log("链接:", this._url)
            console.log("参数:", arguments)
        }
        return hookSend()
    }
    

    问题:本人想在send函数里查看下筛选后的链接(this._url)和参数(arguments),但是运行了之后百度网盘官网出现如下错误,想请问这是啥问题?

    3FK{Z(OXKWEJ\}SL@$QS%TP.jpg

    最佳答案

    查看完整内容

    [md]1. 箭头函数的问题, 用箭头函数this都不知道指向哪里去了 2. 劫持的 `XMLHttpRequest.prototype.send` 返回的应该是一个函数, 而不是函数返回值 ```js // 1. 创建 XHR 对象 console.log("=============================") // 2. 调用 open 函数,保存url——为了后续send修改时判断是否是需要的那个url let hookOpen = XMLHttpRequest.prototype.open /* [change] 修改为普通匿名函数 */ XMLHttpRequest.prototype.open = f ...
  • TA的每日心情
    难过
    7 天前
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    16

    主题

    26

    回帖

    245

    积分

    荣誉开发者

    积分
    245

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

    发表于 2023-9-24 17:34:38 | 显示全部楼层
    1. 箭头函数的问题, 用箭头函数this都不知道指向哪里去了
    2. 劫持的 XMLHttpRequest.prototype.send 返回的应该是一个函数, 而不是函数返回值
    // 1. 创建 XHR 对象
    console.log("=============================")
    // 2. 调用 open 函数,保存url——为了后续send修改时判断是否是需要的那个url
    let hookOpen = XMLHttpRequest.prototype.open
    
    /* [change] 修改为普通匿名函数 */
    XMLHttpRequest.prototype.open = function (method, url, async, user, password)  {
        this._url = url
        console.log(this._url)
        return hookOpen.call(this, method, url, async, user, password)
    }
    
    let hookSend = XMLHttpRequest.prototype.send
    /* [change] 修改为普通匿名函数 */
    XMLHttpRequest.prototype.send = function ()  {
        //找到需要的那个链接
        if (this._url && this._url.indexOf && this._url.indexOf("share/set")) {
            //判断是否包含需要修改的数据
            console.log("链接:", this._url)
            console.log("参数:", arguments)
        }
    
        /* [change] 返回函数 */
        return hookSend.call(this)
    }
    已有1人评分好评 油猫币 贡献 理由
    王一之 + 1 + 4 + 1 很给力!

    查看全部评分 总评分:好评 +1  油猫币 +4  贡献 +1 

    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2023-8-27 10:38
  • 签到天数: 1 天

    [LV.1]初来乍到

    11

    主题

    35

    回帖

    59

    积分

    初级工程师

    积分
    59

    油中2周年喜迎中秋

    发表于 2023-9-24 20:37:39 | 显示全部楼层
    Yiero 发表于 2023-9-24 19:52
    [md]1. 箭头函数的问题, 用箭头函数this都不知道指向哪里去了
    2. 劫持的 `XMLHttpRequest.prototype.send`  ...

    哇,是这样呀,箭头函数有大坑,谢谢
    回复

    使用道具 举报

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

    [LV.1]初来乍到

    22

    主题

    862

    回帖

    1361

    积分

    荣誉开发者

    积分
    1361

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

    发表于 2023-9-24 21:54:49 | 显示全部楼层
    还有一个send可能带参数,不要漏了,否则post请求会出问题:
    1. return hookSend.apply(this, arguments)
    复制代码
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2023-8-27 10:38
  • 签到天数: 1 天

    [LV.1]初来乍到

    11

    主题

    35

    回帖

    59

    积分

    初级工程师

    积分
    59

    油中2周年喜迎中秋

    发表于 2023-9-24 22:51:30 | 显示全部楼层
    cxxjackie 发表于 2023-9-24 21:54
    还有一个send可能带参数,不要漏了,否则post请求会出问题:

    嗯嗯!够细的,谢谢C大
    回复

    使用道具 举报

    发表回复

    本版积分规则

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