Max
Max

Reputation: 4408

Access local files through Google chrome extension?

I need to load a list of names into my google chrome extension from a local file, How can this be done? what if the file is shipped with the extension itself?

Upvotes: 12

Views: 10476

Answers (2)

Rohit Nandi
Rohit Nandi

Reputation: 878

Say your json file is names.json in the following folder

-- manifest.json
-- config
   |-- names.json

In manifest.json add path to the resource

"web_accessible_resources": [
        "config/names.json"
    ]

Use fectch() API to access the resource

const url = chrome.runtime.getURL('./config/names.json');

fetch(url)
  .then(
    function(response) {
      if (response.status !== 200) {
        console.log('Looks like there was a problem. Status Code: ' +
          response.status);
        return;
      }

      // Examine the text in the response
      response.json().then(function(data) {
        console.log(data);
      });
    }
  )
  .catch(function(err) {
    console.log('Fetch Error :-S', err);
  });

Upvotes: 5

serg
serg

Reputation: 111335

If this file is shipped with your extension then you can just load it with XMLHttpRequest inside background page (use relative paths, with / being extension root folder).

You can also make your file to be javascript (var config=[...]) and just load it with <script> into background page.

Upvotes: 6

Related Questions