Javascript 在chrome扩展浏览器操作中需要两个操作
我正在尝试创建一个带有内容脚本交互的chrome扩展。我在浏览器操作场景中面临一个问题。我曾尝试在谷歌搜索解决方案,但徒劳无功 下面是一个场景 当点击chrome扩展图标时,我想要两个不同的动作(浏览器动作)。如果我有一些密钥存储在本地存储器中,我需要向内容脚本发送消息,否则我需要显示弹出窗口 例如,假设我试图验证用户是否登录了gmail。第一次,如果用户没有登录,我需要在单击扩展图标时显示带有消息“请登录”的弹出窗口。如果用户已经登录,那么我会将其存储在本地存储中,因此如果用户再次单击图标而不是显示弹出窗口,则需要联系内容脚本 请建议 编辑:在此处更新我的代码 在background.js中。(问题是它没有进入else部分。尽管它有本地存储值,但始终显示弹出事件)Javascript 在chrome扩展浏览器操作中需要两个操作,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我正在尝试创建一个带有内容脚本交互的chrome扩展。我在浏览器操作场景中面临一个问题。我曾尝试在谷歌搜索解决方案,但徒劳无功 下面是一个场景 当点击chrome扩展图标时,我想要两个不同的动作(浏览器动作)。如果我有一些密钥存储在本地存储器中,我需要向内容脚本发送消息,否则我需要显示弹出窗口 例如,假设我试图验证用户是否登录了gmail。第一次,如果用户没有登录,我需要在单击扩展图标时显示带有消息“请登录”的弹出窗口。如果用户已经登录,那么我会将其存储在本地存储中,因此如果用户再次单击图标而不
现在还不完全清楚您在这里需要什么帮助,所以根据您问题的措辞,我猜测您需要逻辑或本地存储方面的帮助 我对chrome扩展图标上的事件一无所知,但假设您可以获得该事件,您的代码应该如下所示:
// this code goes inside your icon click handler
if (localStorage.loggedIn === 'loggedIn') {
// do whatever action you want to happen if the user is logged in
} else {
if (/* check to see if logged in goes here*/) {
// user is logged in so store value so you don't have to check again
localStorage.loggedIn = 'loggedIn';
} else {
localStorage.clear('loggedIn');
alert("Please login to gmail first")
}
}
当然,这段代码会按照您的要求执行,但它不会处理用户单击按钮、登录、然后在将来某个点注销并再次单击按钮的情况。在这种情况下,不会重置localStorage值,除非您在其他位置执行此操作。browserAction.onClicked事件在已经有弹出窗口时不会触发。您好,mordred,我已经有了此逻辑。但我坚持使用chrome浏览器。我会在那里更新我的代码
// this code goes inside your icon click handler
if (localStorage.loggedIn === 'loggedIn') {
// do whatever action you want to happen if the user is logged in
} else {
if (/* check to see if logged in goes here*/) {
// user is logged in so store value so you don't have to check again
localStorage.loggedIn = 'loggedIn';
} else {
localStorage.clear('loggedIn');
alert("Please login to gmail first")
}
}