首页 > 解决方案 > 将内容从 fetch 写入变量失败

问题描述

我有一个问题,我已经坐了几个小时了。我做了很多研究,但在许多尝试中,没有任何效果。

编写浏览器插件时会出现问题。在 fetch 的帮助下,我想从 web_accessible_resources 中读取一个 JSON 文件并将其保存在一个全局变量中,以便之后我可以更轻松地访问。

但无论我尝试什么,它都不会成功。以下是代码的重要部分。

主要函数调用:

createGlobalWebsiteInformation();
console.log(globalWebsiteInformation.twitter);

获取函数:

function createGlobalWebsiteInformation()
{
    // Daten aus websites.json
    var websitesURL = browser.runtime.getURL("json/websites.json"); // URL der websites.json
    var obj;

    fetch(websitesURL)
      .then(res => res.json())
      .then(data => obj = data)
      .then(() => writeToGlobal(obj));
}

写入全局变量的函数

function writeToGlobal(obj)
{
    for (const ws of obj.websites)
    {
        globalWebsiteInformation[ws.website] = ws;
    }
}

因此,console.log 始终是“未定义的”,而不是存储在 JSON 中的 twitter 网站信息......

标签: javascriptpluginsfetch

解决方案


推荐阅读