在我的网站https://example.com上,我允许用户设置其网站偏好设置的cookie,包括让他们打开或关闭夜间模式。
我为https://example.com创建了一个Chrome扩展程序,该扩展程序使用文件newtab.html覆盖了Chrome的newtab。当我的chrome扩展程序打开newtab.html时,我希望能够检查在我的网站https://example.com上设置的首选项cookie,以便如果用户通过更改设置来启用夜间模式,则新选项卡也将以夜间模式显示。 CSS。
在我的清单中,我有:
"permissions": [ "*://*/*", "http://*/*", "https://*/*", "https://example.com", "tabs", "cookies", "contextMenus", "webRequest", "webRequestBlocking", "webNavigation", "activeTab", "storage", "alarms" ]
在我的newtab.html页面上,我嵌入了以下脚本:
<script type="text/javascript" src="js/newtab.js"></script>
newtab.js包含以下代码:
var cookie = chrome.cookies.get({url: "example.com", name: "preferences"});
console.log(cookie);
但是我在控制台中收到以下错误:
未捕获的TypeError:调用cookies.get(对象详细信息,函数回调)时出错:没有匹配的签名。
我在这里做错了什么?如何在newtab.html页面上访问exmaple.com的cookie,以便相应地更改newtab.html页面的CSS?
在此先感谢您的协助。
最佳答案
chrome.cookies.get()
将回调作为第二个参数,因为它可能不会立即返回。错误告诉您作为第二个参数传递的函数(undefined
,因为您没有传递第二个参数)与回调所需的函数签名不匹配。尝试这个:
chrome.cookies.get({url: "http://example.com", name: "preferences"}, cookie => {
console.log('got a cookie!', cookie);
});