我目前正试图让我的第一个Chrome扩展程序运行。学习一些Javascript和管理一些数据是一个非常简单的应用程序。我已经设法让我的简单扩展程序运行,但问题是如果我关闭扩展程序或单击页面上的其他位置,扩展程序中的数据将丢失。所以我想每次点击图标时都会重新启动扩展程序。
但我希望数据保留在我的扩展名中,即使我切换到另一个页面或关闭扩展名的stake
窗口。
如何在扩展程序的运行时间内管理数据存储?
这是我的应用程序的代码。此时,按钮只会向{
"manifest_version": 2,
"name": "Betting Extension",
"description": "This extension will analyze your account history",
"version": "1.0",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": [
"activeTab"
]
}
元素添加5,以查看是否存储了值。
的manifest.json
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Tipico Analyzer</title>
<script src="popup.js"></script>
<link rel="stylesheet" href="Style.css">
</head>
<body style="width: 100px">
<p>stake: <span id="stake">0</span>€</p>
<p>profit: <span id="profit">0</span> €</p>
<p>winning: <span id="winning">0</span> €</p>
<button id="addPage">Add page</button>
</body>
</html>
popup.html
document.addEventListener('DOMContentLoaded', function(){
var checkPageButton = document.getElementById('addPage');
checkPageButton.addEventListener('click', function(){
d = document;
var stake = parseFloat(d.getElementById('stake').innerHTML);
document.getElementById('stake').innerHTML = stake + 5;
}, false);
}, false);
popup.js
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
SFSafariViewController *vc = [[SFSafariViewController alloc] initWithURL:[NSURL URLWithString:@"https://www.google.com"]];
self.window.rootViewController = vc;
return YES;
}
答案 0 :(得分:2)
在扩展程序的运行期间,有三种方法可以存储数据。
"persistent": true
中设置manifest.json
,后台页面将在您的扩展程序的运行时间内运行。使用chrome.storage:您可以使用此API来存储,撤消和跟踪数据更改。 chrome.storage
中的数据即使在重新启动后也可用,但如果您的扩展程序已卸载,则会丢失。
chrome.storage.local.get([key], function (result) {
var value = result[key];
});
chrome.storage.local.set({key: val});
var value = localStorage.getItem(key);
localStorage.setItem(key, value);