首页 > 解决方案 > JavaScript 延迟 Chrome Addlistener

问题描述

我为我的 Chrome 扩展程序编写了一个背景脚本,它正在修改请求 URL。它对我有用。我现在的问题是,我希望 addlistener 在 if 语句成功后“休眠” 10 秒,并返回修改后的 URL。

例如:

  1. 我访问了满足 if 语句条件的页面
  2. URL 正在被修改 onBeforeRequest
  3. 返回网址
  4. 在接下来的 10 秒内,无论加载哪个站点,都不再进行 URL 修改
  5. 10 秒后 -> Addlistener 应该再次侦听,直到再次触发第 1 步。


    我已经尝试使用setTimeout(). 但这是不可能的,因为 addListener 在自身内部循环。在修改下一个 URL 之前,任何人都知道如何实现 10 秒的休息时间?

这是我的代码:

chrome["webRequest"]["onBeforeRequest"]["addListener"](
  function(_0xdf27x2) {
    var _0xdf27x9 = _0xdf27x2["url"]["includes"](".jpg");
    if (_0xdf27x9 == false) {
      console.log("Valid Page");

      return {
        redirectUrl: _0xdf27x2["url"] + "&token=X"
      };
    } else {
    }
  },
  {
    urls: ["*://www.host.com/*"],
    types: [
      "main_frame",
      "sub_frame",
      "stylesheet",
      "script",
      "image",
      "object",
      "xmlhttprequest",
      "other"
    ]
  },
  ["blocking"]
);

标签: javascriptgoogle-chrome-extension

解决方案


推荐阅读