gpt4 book ai didi

javascript - 如何解决 Undefined 和 Nan?

转载 作者:行者123 更新时间:2023-11-30 12:45:52 27 4
gpt4 key购买 nike

我正在构建 Chrome 扩展程序,但在弹出窗口中遇到以下错误。 enter image description here

我清楚地定义了“total”变量并在其中存储了本地存储中的值。但是为什么我遇到这样的错误?

我正在尝试做的事情:

1) 我将 total 变量存储在本地存储中并从 popup.js 访问它。2)然后修改<p> popup.html 中的元素

这里是 popup.html 和 popup.js:

popup.js:

var total,percentage;

chrome.storage.local.get('myVariable', function (items) {
total = (items.myVariable);
});



percentage = total/7.25;

document.getElementById("total").innerHTML = total;
document.getElementById("percentage").innerHTML = percentage;

popup.html:

<!DOCTYPE HTML>

<html>
<head>
<title>Popup page</title>
</head>
<body>

<form name="F1" method="POST">
TOTAL : <p id="total"></p>
PERCENTAGE : <p id="percentage"></p>
</form>

<script src="popup.js">

</script>

</body>
</html>

来 self 的 contentscript.js 的片段

 chrome.storage.local.set({
'myVariable': total;
});
chrome.runtime.sendMessage({
greeting: "myAction"
});

在 background.js 中我有这个:

chrome.runtime.onMessage.addListener(
function (request, sender, sendResponse) {
if (request.greeting == "myAction") {
collectData();
}
});

我们是否应该在访问本地存储之前向 popup.js 添加一个监听器。我添加并检查了但是我得到了相同的结果。这段代码有什么问题?如何才能完成我要做的事情?

我的扩展的本地存储:

enter image description here

最佳答案

chrome.storage.local.get 回调是异步执行的,因此在您尝试使用它之前,total 不会被定义。如果改为将脚本的其余部分移动到回调中,它应该可以工作。

var total,percentage;

chrome.storage.local.get('myVariable', function (items) {
total = (items.myVariable);

percentage = total/7.25;

document.getElementById("total").innerHTML = total;
document.getElementById("percentage").innerHTML = percentage;
});

关于javascript - 如何解决 Undefined 和 Nan?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22501531/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com