首页 > 解决方案 > Javascript 对象存在,但是当我调用一个键时返回未定义

问题描述

我不是在问问题,因为我终于解决了它,但我会发布它,因为我花了超过 3 个小时试图弄清楚它。

情况

我正在开发一个 Chrome 扩展程序,并希望允许用户通过“options.html”页面更改 Chrome 设置。

该扩展将当前配置加载为 Object options.js

let myConfiguration = new Object()
myConfiguration = getCurrentConfig() 

myConfiguration如果我在 my中调用我的变量options.js,我会得到一个空对象:

console.log(myConfiguration)
// Output: {}

如果我从 devtools 调用我的变量,我会得到对象:

console.log(myConfiguration)
// Output: {key1: value1, key2: value2,...}

这让我发疯了。请参阅下面的答案。

标签: javascriptgoogle-chrome-extension

解决方案


解决方案

问题是当我从options.js文件中调用变量时,它仍然没有被赋值。但是当我在 devtools 上检查控制台时,我的变量有一个赋值。

解决方案是调用从新的“js”文件中为变量分配其值的函数,并将该文件放在options.html页面上的 de body 标记之前。

我希望这可以帮助某人花费 3 个小时来玩弄 javascript 代码。


推荐阅读