Tab Reloader an easy-to-use multi-browser tab reloader
Support Development
PayPal ● 
Bitcoin Address: 1sM2BrTH8BRgt3quiASK8TmYSafutNvDo
 ● 
Dogecoin Address: DFdSGpGMZ2EZVkjyqNrYCEysK92DFPonx4
Advertisement
Screenshot
"Tab Reloader" lets you reload each browser tab with a custom time-frame. Tab Reloader supports Chrome, Opera and Firefox browsers. The extension offers different reloading options such as random time generation and supports session restore.

Features

  1. What is Tab Reloader extension?

    Tab Reloader extension is design to provide full customization on how each browser tab gets reloaded. The extension can be used to update tabs to freshen their content.

  2. recommended "VectorDraw - Paint on Tab" extension for Chrome, Firefox, and Edge browsers

    Adds a presentation toolbar to the active tab to insert interactive objects (circle, rectangular, line, and polygon), interactive text area, and more. Capture the tab with all the elements on it or print it directly.

  3. What's new in this version?

    Please check the Logs section.

  4. Is it possible to change the toolbar placement of the Tab Reloader extension?

    Yes, if you have Tab Reloader on Firefox, read this blog post to learn more about how to customize the position of Tab Reloader.

  5. How can I setup a new reloading job?

    Simply switch to the tab you would like to be reload periodically. Now open the toolbar panel/popup. If the toolbar icon is not gray, it means the tab already has a reloading job. You need to cancel the job first before assigning a new job. Now adjust the period in the "Adjust Reloading Time" section and press "enable" button. At this point, the color of toolbar button as well as the counter both will change. Also there is a count down timer in the "Status" section of the toolbar panel/popup.

  6. What is the meaning of the badge number?

    The badge number indicates the number of active reloading tabs. If you close a tab with a reloading job, the counter decrements by one.

  7. Do I need to disable a reloading job before closing a tab?

    No, if you are done with a tab with reloading job, you can simply hit the close button to close the tab. The extension monitors tabs, and the toolbar counter will adjust itself when a new job is added or removed.

  8. Is there a minimum time period for tab reloading?

    Currently, the minimum acceptable time period is 10 seconds. This might be changed in the future to make sure the count down starts after tab's is fully loaded to prevent unnecessary reloads.

  9. Are the countdowns persistent across browser sessions?

    As of version 0.1.2, the extension stores up to 20 URLs for cross-session restoring of countdowns. Please note that there are several limitations with the restoring method. First, URL matching technique is used to restore tabs as all tab related identifications are session based. So assuming you have two identical tabs with different countdowns, after a reboot the most recent countdown will be used for both tabs. Also note that if a tab was active before a reboot, it will be activated after a restart as long as the URL still matches the old one.

  10. Are there any exceptions for tab reloading after a reboot?

    Yes, system URLs (chrome://, resource://, and about:) are not restore-able. Meaning there would be no countdown for these kind of tabs after a restart.

  11. Is it possible to clear the stored URL list to prevent cross-session tab reloading?

    By default this extension remembers up to 20 reloading jobs to restore them after a reboot or a crash. If this is not your preference, go to the options page and uncheck the option. You can press the "Reset" button to clear the current history as well.

  12. I need to reload many tabs upon start-up. It is really hard to define a reloading job for each tab. Can I do this in batch?

    Yes. Go to the options page and define a JSON string like this example. Tab Reloader will match all the tabs with the hostnames that are defined in the JSON string and if a tab matches, an automatic job is set for this particular hostname. You can add as many hostnames as you like.

    [
       {
          "hostname":"www.google.com",
          "dd":0,
          "hh":0,
          "mm":1,
          "ss":0
       },
       {
          "hostname":"www.bing.com",
          "dd":0,
          "hh":0,
          "mm":1,
          "ss":30
       }
    ]

    In this example, all tabs with matching hostname of "www.google.com" will be reloaded every 1 minute and all tabs with matching hostname of "www.bing.com" will be reloaded every 1 minute and 30 seconds.

  13. What is the meaning of "Use cache when reloading"?

    If this option is disabled, the extension forces the browser to refresh the tab without using resources from local cache (all images, scripts, ...) will be fetched from the server (similar to Shift + F5). If the option is enabled, the extension uses browser cache to reload resources (similar to F5).

  14. There are some websites that I always want to be reloaded with a defined period (like news websites). Is it possible to ask the extension to set a reloading job for these websites once they get opened in a new browser tab or from the bookmarks?

    Yes, go to the options page and define the custom JSON object to match these websites. You will need to define a new rule per hostname. There is a sample button that can guide you on how to prepare the JSON object. Now check the option box below the JSON editor which asks the extension to match all the newly opened hostnames to the JSON object. If a key matches, the rule will be applied to the tab. Since the rule is tab-based, even if you load a new page with another hostname inside the tab with an active job, the job applies to the new hostname too.

  15. What is the "Reloading Policy" object on the options page and how can I use it?

    This object is introduced in version 0.2.9, and can store policy rules for each domain. The keys of this object are the hostnames and the values are the rules. Since the key string accepts wildcards, you can match all hostnames with "*". Each key has a value of object type in {"date": "valid regexp", "url": "valid regexp"} format. The "date" key is used to match the current time to the local date string and the "url" key is used to match the current URL with the provided regexp. Note that you can skip one of the "url" or "date" keys if it is not needed. If both keys exist, the regular expression for both must match for the reloading job to take place. Let's say we only want to reload www.example.com only between 2:00 PM to 4:00 PM. The object would be

    {
      "*.example.com": {
        "date": " [23]:.*PM"
      }
    }

    Since the local date string looks like 10/7/2019, 2:47:35 PM, the [23]:.*PM string is a valid regular expression that only matches with the local date object only between 2:00 PM to 4:00 PM. You can test the regexp in the browser console / [23]:.*PM/.test('10/7/2019, 2:47:35 PM'). Of course, you can write a more complex expression that matches this time period too. Note that the policies are checked just before the tab is reloaded, so you can basically stop a tab that has an active reloading job with the reloading policies.

    If you need to match for instance between 8:00 AM to 5:59 PM, use an expression similar to ( [89]:.*AM)|( 1[01]:.*AM)|( 12:.*PM)|( [12345]:.*PM) which contains four sections. The first one matches 8:00 AM to 9:59 AM. The second one matches 10:00 AM to 11:59 AM. The third one matches 12:00 PM to 12:59 PM and the last one matches 1:00 PM to 5:59 PM. See issues/65 as an example.

  16. What is the newly introduce code section on the browser popup and why it is disabled by default?

    This section allows the user to run a custom JavaScript code after each refresh. To enable code injection, the extension needs to have permission to this hostname. To do so click on the "Permit Code Execution" button once for each hostname that you would like to inject custom JavaScript code. Now insert your code on the box and this code will be injected to each page after each reloads. To check for errors, use the inspect item from the right-click context menu over the page that the code is injected to.

  17. Can I ask the extension to play a beep sound after each refresh?

    As of version 0.3.2, you can ask the extension to run a custom JS code after each refresh. So to play a sound you can use the following JS code

    (new Audio('https://www.w3schools.com/html/horse.ogg')).play()

  18. Can I ask the extension to stop reloading after single reloading occurs?

    The custom code section accepts a special signal to toggle reloading. Use the following code in the custom JS section to stop reloading just after the first reloading.

    window.setTimeout(script => script.dispatchEvent(new Event('toggle-requested')), 1000, document.currentScript);
    Of course you can stop the reloading after a few times just by setting a localStorage variable and update it after each reload. Then send the toggle signal when the reloading count matched.

  19. In the Firefox browser, the "Permit Code Execution" button is not working. Why?

    Seems like Firefox is not yet able to open the permission box issued by a browser action's popup. For now, the only workaround is to allow host permission from the options page. This permission allows the extension to run a user requested code in an arbitrary hostname.

  20. Is it possible to use this extension to get notified when the content of a page changes?

    We can convert the page content to a HASH code and use it to evaluate whether there is a new update to the content or not. The HASH string is small so we can simply save it for later use. The following code calculates the SHA256 hash code from the entire page's content (you can even limit the code to use the content of a particular HTML element too) and stores it in a persistent variable. This HASH code is calculated after each page refresh and if the value changes the user gets a sample sound alert:

    {
      async function sha256(message) {
        const script = document.currentScript;
        const msgBuffer = new TextEncoder('utf-8').encode(message);
        const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
        const hashArray = Array.from(new Uint8Array(hashBuffer));
        const hashHex = hashArray.map(b => ('00' + b.toString(16)).slice(-2)).join('');
        return hashHex;
      }
      sha256(document.body.innerText).then(hash => {
        const oh = localStorage.getItem('tab-reloader-hash');
        if (oh && oh !== hash) {
          script.dispatchEvent(new CustomEvent('play-sound', {
            detail: 'https://www.w3schools.com/html/horse.ogg'
          }));
        }
        localStorage.setItem('tab-reloader-hash', hash);
      });
    }

  21. Is it possible to reset the reloading timer when there is an activity on a tab (auto-reload only after a defined idle time is passed)?

    This extension supports injecting a user-defined custom script to the webpages that are reloaded. Also, it supports the script to change the enabling state. Combining these two features you can inject a script that monitors the user activity and requests the reset. The following code is sensitive to user clicks and typing and resets the timer accordingly after 0.5s passes.

    {
      const script = document.currentScript;
    
      const reset = () => {
        console.log('Reset the Timer');
        script.dispatchEvent(new Event('toggle-requested'));
        script.dispatchEvent(new Event('toggle-requested'));
      };
    
      let id;
      document.addEventListener('click', () => {
        clearTimeout(id);
        id = setTimeout(reset, 500);
      });
      document.addEventListener('input', () => {
        clearTimeout(id);
        id = setTimeout(reset, 500);
      });
    }

  22. Playing sound with the suggested "new Audio" JavaScript code is not working properly for me when the tab is not active. Why the sound is not being played?

    Some browsers do not allow inactive tabs from auto-playing media files to protect users. Since v0.3.4, you can use the following alternative code to play media sounds:

    {
      const script = document.currentScript;
      window.setTimeout(() => {
        script.dispatchEvent(new CustomEvent('play-sound', {
          detail: 'https://www.w3schools.com/html/horse.ogg'
        }));
      }, 500);
    }
    In this meethod, the script asks the background page to play the music.

  23. Is it possible to conditionally focus a tab with the injected script?

    As of version v0.3.4, you can send the "activate-tab" event to the script to bring the sender tab to the front. This code asks the background script to focus the sender's tab.

    {
      const script = document.currentScript;
      window.setTimeout(() => {
        script.dispatchEvent(new Event('activate-tab'));
      }, 500);
    }

  24. Is it possible to postpone the next reloading job with an arbitrary value from the injected script?

    As of version 0.3.6, there is a new custom event called "delay-for" which can be used to delay the next reloading job with an arbitrary positive or negative value. For instance, to postpone the next reloading job an extra 30 seconds use:

    {
      window.setTimeout(script => {
        script.dispatchEvent(new CustomEvent('delay-for', {
          detail: 30000
        }));
      }, 1000, document.currentScript);
    }
    In this example, consider the reloading period is 5 minutes. With this extra delay, the next reloading occurs 5 minutes and 30 seconds from the script execution. This event can be used to schedule the next reloading job. For instance, say you don't need the tab to be reloaded during the daytime. Write a JavaScript code that compares the current time with your preferred schedule, and if the condition matches, delay the next reloading job until the period is over.

  25. When I am trying to reload a webpage I get a confirmation message like "This page is asking you to confirm that you want to leave - data you have entered may not be saved" or "Changes you made may not be saved". Is there any way to automatically bypass these warning with this extension?

    You can enable script injection and delete the function that causes these warnings. Note that you are disabling an important warning with this code, so use it with caution.

    {
      window.onbeforeunload = '';
      document.onbeforeunload = '';
      document.body.onbeforeunload = '';
    }
    Note that you are going to get the warning on the first reload and you should manually accept it since this script is only injected after each reload.

Matched Content

Preview

Reviews

Please keep reviews clean, avoid the use of improper language and do not post any personal information.
  • <a> Defines an anchor.

    Example: <a href="http://add0n.com">a sample link</a>

  • <pre><code> Syntax Highlighting (Supported languages: Bash, JSON, HTML, JavaScript, and CSS).

    Example: <pre><code class="javascript">var foo = 'bar';</code></pre>

  • <strong> Defines bold text
  • <blockquote> Defines a long quotation
  • <caption> Defines a table caption
  • <cite> Defines a citation
  • <em> Defines italic text
  • <p> Defines a paragraph
  • <span> Defines a section in a document
  • <s> Defines strikethrough text
  • <strike> Defines strikethrough text
  • <u> Defines underlined text
  • <br> Defines a single line break; can be used alone and don't need an ending tag

What's new in this version

Version--
Published--/--/--
Change Logs:
    Last 10 commits on GitHub
    Hover over a node to see more details

    Need help?

    If you have questions about the extension, or ideas on how to improve it, please post them on the  support site. Don't forget to search through the bug reports first as most likely your question/bug report has already been reported or there is a workaround posted for it.

    Open IssuesIssuesForks

    Editorial Review

    Tab Reloader is a great add on that lets you reload every browser tab with a custom time frame. While it is supported on multiple browsers, it works best on Firefox.

    One of the best things about Tab Reloader is that it has a clear interface and it is highly adjustable. The tab has a wide reloading range that goes from 10 seconds to 10 days. The add-on has been designed to provide complete customization on how every browser tab gets loaded and reloaded. The extension can be used to update tabs which will then freshen the content. The add-on is very simple to use and extremely convenient if you are working on several browsers at the same time. Moreover, the add-on lets you launch several tabs in a custom time frame which means that it makes working very easy and simple for you. The add-on is a must have for people who mostly work on computers and have several pages to work on side by side. It is easy to use and does not have glitches like other add-ons do. The simplicity of the add on does not only apply to its ease of use but also its easy and basic installation. All you have to do is install it and the rest will follow itself. Another positive thing about the add on is that the configuration is done via the context menu and therefore no extra action is needed to use the add-on.

    Overall, Tab Reloader is a great plugin for all those who want to add convenience and ease in their life. It is easy to use, easy to install and facilitates a lot of ease in your day to day life. It is available on the web and can be installed for free.

    Recent Blog Posts on add0n.com