【发布时间】:2014-03-16 02:25:43
【问题描述】:
我正在尝试构建一个 chrome 扩展,我必须在其中本地存储一些数据。下面给出的代码是我的 popup.html,我不明白为什么它不在本地存储中设置值。我的 manifest.json 有“存储”和“标签”权限。
<script type="text/javascript">
function save() {
var username = document.getElementById('username').value;
var password = document.getElementById('password').value;
chrome.storage.local.set({'username': username}, function(){});
chrome.storage.local.set({'password': password}, function(){});
}
</script>
Roll Number
<input type="text" name="username" id="username"></input>
Password
<input type="password" name="password" id="password"></input>
<button onclick="save()" type="submit" name="submit">Save</button>
这是我的 manifest.json 文件。
{
"manifest_version": 2,
"name": "Autologin",
"description": "Blah bhla.",
"version": "1.0",
"permissions": [
"http://xxxxxxxxxxxxx/*",
"storage"
],
"content_scripts": [
{
"matches": ["http://xxxxxxxxxxxxx/*"],
"js": ["autologin.js"]
}
],
"browser_action": {
"default_icon": "icon.png",
"default_popup": "autologin.html"
}
}
【问题讨论】:
-
您需要发布清单。 Chrome 一般不喜欢运行 in-html javascript;你应该把它移到一个单独的文件中。
-
已编辑。但是 in-html javascript 在 chrome 中运行。
-
您应该编辑您的问题,而不仅仅是您的代码,因为正如发布的那样,此代码不起作用。正如 Teepeemm 所说,清单版本 2 自动将 CSP 设置为禁止内联 JavaScript:developer.chrome.com/extensions/contentSecurityPolicy.html。我们假设您已经阅读了控制台并处理了您看到的有关 CSP 的错误消息。控制台是否还有其他错误?
-
不。控制台中没有错误。
-
我认为您更有可能没有看到错误。对于您的内容脚本,将控制台的
page context更改为您的扩展程序的 ID。对于您的浏览器操作,右键单击图标和Inspect Popup。他们仍然没有显示错误吗?
标签: javascript google-chrome google-chrome-extension local-storage