javascript - 如何制作一个 chrome 扩展,其表单即使在关闭/打开扩展后仍保持填充状态?
问题描述
我的 chrome 扩展程序中有表格。我想制作我的扩展程序,以便当用户填写表单并按下保存按钮时,下次关闭并再次打开扩展程序时表单保持填写状态。
这是代码:
清单.json:
{
"name": "DRIP",
"version": "1.0",
"manifest_version": 2,
"description": "DRIP is an automation tool for purchasing limted items",
"permissions": ["storage",
"tabs",
"https://www.googleapis.com/"
],
"content_security_policy": "script-src 'self' https://ajax.googleapis.com; object-src 'self'",
"browser_action": {
"default_popup": "popup.html"
},
"background": {
"scripts": ["background.js"],
"persistent": true
}
}
background.js:(没有代码,我只是在文件夹中)
popup.js:
const profile = document.forms.profile
var fName = profile.elements.fName
document.getElementById("save").addEventListener("click", save)
function save() {
chrome.storage.local.set({"fName": fName.value}, function(){
alert("saved" + fName.value)
});
}
var fNameSaved =
chrome.storage.local.get("fName", function(data) {
alert('Value currently is ' + document.getElementById("fName").value)
});
document.getElementById("fName").value = fNameSaved
//next step = keep form filled after opening/closing app
popup.html:
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<script language='javascript' src='popup.js' defer></script>
</head>
<body>
<form name="profile">
<input id="fName" name="fName" type="text" placeholder="First Name">
<input id="lName" name="lName" type="text" placeholder="Last Name">
<input id="save" name="save" type="button" value="Save">
</form>
</body>
</html>
非常感谢您的帮助,谢谢!
解决方案
尝试像这样更改它
chrome.storage.local.get("fName", function(data) {
if (data.hasOwnProperty("fName")) {
document.getElementById("fName").value = data.fName;
}
});
还要检查你在数据中得到了什么,就像 data.value 等
推荐阅读
- android - 如何在移动应用程序中限制 Google Map API 密钥?
- python - 使用特定方法对字符串列表进行排序
- reactjs - React 16.7 - React.SFC 现在已弃用
- android - 使用 androidx、dagger2、butterknife 构建 Android java 代码不会构建
- javascript - 与路径有关的 Webpack 问题
- django - 在 django 中发送电子邮件
- javascript - 当没有 .xml 扩展名时,如何在 IE 中加载 XML 文件?
- c# - 检查存储过程的执行是否可以修改数据
- laravel - 谷歌云平台实例上的文件未更新
- r - R Leaflet中的字符编码