jzsky95 发表于 2025-12-29 09:00:31

为什么只有在F12的情况下可以执行?

大佬们,想拿到某个网页的数据,但是该页面在请求的js里面已经将id做了一个映射导致拿不到信息,所以我想办法重写了一下这个js里面的函数。
但是只有在F12打开开发者工具的时候,才会执行成功,然后页面可以显示对应的数据,
关闭F12后页面数据就没了,失效了,这是怎么回事?
!(data/attachment/forum/202512/29/085942q5b2mzhw5whcmhms.png)
```
(function () {
    'use strict';

    // 拦截 initPopup 函数进行重写
    const interval = setInterval(function () {
      if ($ && $.extend) {
            // 保存原始的 $.extend 方法
            const originalExtend = $.extend;

            // 重写 $.extend 方法
            $.extend = function () {
                // 只处理包含 initPopup 的对象
                if (arguments && typeof arguments.initPopup === 'function') {
                  // 保存原始的 initPopup 方法
                  const originalInitPopup = arguments.initPopup;

                  // 重写 initPopup 方法
                  arguments.initPopup = async function () {
                        console.log("initPopup 被拦截并修改了!");
                        // 这里执行新代码
                        initPopup();
                        console.log(`initPopup 函数执行完毕!`);
                        return; // 无需返回值
                  };
                }

                // 调用原始的 $.extend 方法
                return originalExtend.apply($, arguments);
            };

            // 停止检查
            clearInterval(interval);
      }
      
      function initPopup(){}
    }, 0);
```

李恒道 发表于 2025-12-30 08:52:57

这个听着太模糊了,最好还是有可以测试的例子。
页: [1]
查看完整版本: 为什么只有在F12的情况下可以执行?