吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 879|回复: 6
收起左侧

[已解决] GM_webRequest和_GM_webRequest使用

[复制链接]
探索1979 发表于 2023-10-8 16:32
本帖最后由 探索1979 于 2023-10-8 16:35 编辑

GM_webRequest是Tampermonkey提供的api,请问下面的_GM_webRequest那个平台提供的api 或者自定义,如果是平台提供的api,请大神提供官方api文档
var _GM_webRequest = /* @__PURE__ */ (() => typeof GM_webRequest != "undefined" ? GM_webRequest : void 0)();
  function scrapingOn() {
    _GM_webRequest(
      [
        {
          selector: "https://xxxx*",
          action: "cancel"
        },
        {
          selector: "https://xxxx*",
          action: {
            redirect: "https://xxxx"
          }
        }
      ],
      (info) => {
        switch (info) {
          case "cancel":
            scraperPageStore.setState({
              pageContentLoaded: true
            });
            break;
          case "redirect":
            scraperPageStore.setState({
              isNewChapter: true
            });
            break;
        }
      }
    );
    preRenderContainerObserver.observe(document.documentElement, {
      childList: true,
      subtree: true
    });
    const unsub = subscribePageContentLoaded();
    scraperPageStore.setState({
      pageContentLoadedCleanUp: getPageContentLoadedCleanUpFunction(unsub)
    });
  }
  function scrapingOff() {
    scraperPageStore.getState().pageContentLoadedCleanUp();
    preRenderContainerObserver.disconnect();
    _GM_webRequest([], () => {
    });
  }

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

kihlh 发表于 2023-10-8 18:23
本帖最后由 kihlh 于 2023-10-8 18:25 编辑

其实从全局里面获取 fetch 更好用,这个api太古老了也太繁琐了
头部添加 // @grant               unsafeWindow

[JavaScript] 纯文本查看 复制代码
// ==UserScript==
// @grant               unsafeWindow
// ==/UserScript==

try { if (typeof fetch === "undefined") { if (typeof unsafeWindow !== "undefined") fetch = unsafeWindow.fetch } } catch (E) { }

fetch("https://www.52pojie.com").then(data=>data.text()).then(data=>{
console.log(data);
})



如果您想了解官方文档:https://www.tampermonkey.net/documentation.php?locale=en
您所提及的API就在其中

 楼主| 探索1979 发表于 2023-10-8 19:37
kihlh 发表于 2023-10-8 18:23
其实从全局里面获取 fetch 更好用,这个api太古老了也太繁琐了
头部添加 // @grant               unsafeW ...

_GM_webRequest,这前面多一个“_”是什么功能,大神
kihlh 发表于 2023-10-8 20:36

var _GM_webRequest = /* @__PURE__ */ (() => typeof GM_webRequest != "undefined" ? GM_webRequest : void 0)();

他定义了一个 _GM_webRequest  应该是为了防止找不到 GM_webRequest导致程序无法执行

typeof GM_webRequest != "undefined" ? GM_webRequest : void 0
这是一句三元
typeof GM_webRequest  在js里面是判断变量类型  这边他判断的是 GM_webRequest != "undefined"
代表了如果 GM_webRequest 这个东西如果存在则返回 GM_webRequest  

所以我们现在就可以理解为
_GM_webRequest = GM_webRequest 没有则返回undefined (void 0)

他的作用  我们假设GM_webRequest 没有被引入

if(!_GM_webRequest ){console.log("没有这个函数 但是我可以在这里另外处理 不会直接报错")}

if(!GM_webRequest ){console.log("直接报错 因为全局中不存在GM_webRequest  ")}

 楼主| 探索1979 发表于 2023-10-9 11:31
kihlh 发表于 2023-10-8 18:23
其实从全局里面获取 fetch 更好用,这个api太古老了也太繁琐了
头部添加 // @grant               unsafeW ...

大佬提供api文档,里面的的示例是这样书写的没带“_”,是什么原因,_GM_webRequest
kihlh 发表于 2023-10-9 16:09
我在4楼已经很详细的解析了为什么会有_  
你可以把_理解为  copyGM_webRequest

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
探索1979 + 1 + 1 热心回复!

查看全部评分

 楼主| 探索1979 发表于 2023-10-11 20:57
kihlh 发表于 2023-10-9 16:09
我在4楼已经很详细的解析了为什么会有_  
你可以把_理解为  copyGM_webRequest

谢谢大佬
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 19:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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