我有一个chrome扩展程序,允许用户登录系统。当用户未登录时,我希望打开扩展时显示默认页面,但是如果他们已经登录,则我希望在打开扩展时显示另一个弹出窗口。
目前,我正在通过javascript实现此功能,但有时会出现时间延迟。在脚本执行并切换到其他页面之前,原始页面将闪烁一会儿。有没有更好的方法来实现这一目标?
您应该在看chrome.browserAction
API。
具体来说:
chrome.browserAction.setPopup(object details)
设置当用户单击浏览器操作的图标时将HTML文档作为弹出窗口打开。
因此,要设置弹出窗口,您可以这样称呼它:
chrome.browserAction.setPopup({popup: "logged_in.html"});
当您了解用户已登录时,可以执行此操作。但是,您可能希望在重新启动扩展名后恢复此状态。为此,您应将已登录(或注销)的事实保存在持久性存储中,并在初始化时调用此函数。一个事件脚本是这样做的好地方。
// wherever you can do this in your code
function login_success() {
/* ... */
chrome.storage.local.set({logged_in: true});
chrome.browserAction.setPopup({popup: "logged_in.html"});
}
function login_failure() {
/* ... */
chrome.storage.local.set({logged_in: false});
chrome.browserAction.setPopup({popup: "default.html"});
}
// This goes into eventPage.js and executes once on extension load
chrome.storage.local.get("logged_in", function(data) {
if(data.logged_in)
chrome.browserAction.setPopup({popup: "logged_in.html"});
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句