代码之家  ›  专栏  ›  技术社区  ›  Biplab Roy

使用chrome.scripting.executeScript覆盖获取的脚本不起作用

  •  0
  • Biplab Roy  · 技术社区  · 2 年前

    我正在尝试运行一个脚本来拦截来自background.js的获取请求。我使用chrome.scripting.executeScript来运行该脚本。

    chrome.contextMenus.onClicked.addListener((info, tab) => {
    chrome.scripting
        .executeScript({
            target : {tabId : tab.id},
            files : [ "scr.js" ],
        })
        .then(() => console.log("script injected"));
    })
    

    在脚本scr.js中,我试图处理无效的响应。当我从调试控制台运行相同的代码时,它运行得非常好。

    const ofetch = window.fetch;
    window.fetch = async(...args) => {
    var result = await ofetch(...args);
    result
      .clone()
      .json()
      .then(body => console.log(body)); // intercept response here
    return result;
    };
    alert("hi")
    

    注: alert('hi') 用于调试哪个运行良好,但fetch方法不会被覆盖。整个代码在控制台上再次运行良好,包括fetch部分。

    0 回复  |  直到 2 年前