代码之家  ›  专栏  ›  技术社区  ›  Harfho

当服务器返回http500错误时,如何使用chrome扩展自动重新加载页面

  •  1
  • Harfho  · 技术社区  · 5 年前

    由于无法使用Greasemonkey/tampermonkey进行此操作,我想编写一个Chrome扩展程序,如果最初由于服务器错误而无法加载页面,该扩展程序将重新加载页面。

    我想创建一个扩展,如果页面不断返回http500错误,它将不断重新加载每个打开的选项卡。

    我写Chrome扩展程序不是很好,但我读过一些关于 https://developer.chrome.com/extensions/api_index 并且能够编写一个扩展来检查服务器返回的http标头,使用 https://developer.chrome.com/extensions/webRequest onHeadersReceived事件,用于检查返回状态,如果返回状态为500,则重新加载。

    探头 它可以工作,但它只重新加载当前的点击,而不是在后台运行的所有其他打开选项卡上。

    我需要这个扩展的原因
    我使用我编写的油脂猴子脚本一次打开网站的所有链接,如果链接页面打开因http500错误而无法打开,我希望扩展程序不断重新加载它,并希望它适用于后台运行打开链接的所有其他选项卡

    到目前为止我的代码

    manifest.json

    {
      "name": "RWEO",
      "version": "0.4",
      "description": "Reload page when Http 500 error occur",
      "manifest_version": 2,
      "permissions": [
        "webRequest",
        "webNavigation",
        "tabs",
        "<all_urls>"
      ],
      "background": {
      "scripts": ["background.js"],
      "persistent": true
      }
     
    }
    

    背景.js

    chrome.webRequest.onHeadersReceived.addListener(
        function(details) {
    
            if (details.statusCode == 500) {
                var repeat = 0 
                var check = setInterval(() => {
                    chrome.tabs.reload({ bypassCache: false })
                    if (repeat == 3) {
                        clearInterval(check)
                    } , 5000})
             repeat++
            }
    
    
        }, { urls: ["<all_urls>"] }, );
    
    0 回复  |  直到 5 年前