选择首次单击浏览器操作时打开的弹出窗口
Select which popup opens on a first click on a browser action
我开发了一个Chrome扩展程序,可以将数据上传到我的API。
它紧随其后的是signin
页和data-upload
页。至于此功能,一切正常。
问题是当我第一次单击扩展程序时,它无法打开。并在第二次单击它时打开。我需要在用户单击扩展程序时立即打开我的扩展程序。我不知道该怎么做。
这是我的代码:
manifest.json
{
"content_scripts": [
{
"matches": [ "http://*/*", "https://*/*"],
"js": [ "js/dataupload.js", "js/signin.js" ]
}
],
"name": "upload",
"version": "1.1",
"manifest_version": 2,
"description": "Quick access to upload data",
"content_security_policy": "script-src 'self' https://ajax.googleapis.com; object-src 'self'",
"permissions": [
"http://*/*",
"https://*/*",
"https://myapi.com/*",
"https://ajax.googleapis.com/*",
"management",
"tabs"
],
"icons": {
"128": "images/icon.png"
},
"background": {
"scripts": ["js/background.js"]
},
"browser_action": {
"default_title": "Upload APP",
"default_icon": "images/icon.png"
},
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
}
background.js
chrome.browserAction.onClicked.addListener(function(tab) {
if (window.localStorage.getItem('user_api_key')) {
chrome.browserAction.setPopup({popup: "upload.html"});
}
else{
chrome.browserAction.setPopup({popup: "signin.html"});
}
});
代码按预期工作。第一次点击被设置下一次点击发生的情况的chrome.browserAction.onClicked
捕获。
很快就会有chrome.browserAction.openPopup
函数形式的直接解决方案,但它还没有稳定版。
因此,现在您必须重新组织逻辑,因为如果单击时没有立即发生,则无法打开弹出窗口。您应该在清单中将upload.html
设置为默认弹出窗口,然后在upload.html
内部检查条件并根据需要重定向。请注意,localStorage
在背景和弹出窗口之间共享。
因此,清单:
"browser_action": {
"default_title": "Upload APP",
"default_icon": "images/icon.png",
"default_popup": "upload.html"
},
upload.html
的代码:
if (!window.localStorage.getItem('user_api_key')) {
window.location = chrome.runtime.getURL("signin.html");
}
相关文章:
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- 单击时隐藏弹出窗口
- 如何在单击“提交”按钮时为“新建”窗口编写JavaScript,用“确定”和“取消”显示注册信息
- 试图修改此javascript代码以减小弹出窗口的大小,或者在用户单击框外时关闭
- 在外部(正文)单击时关闭弹出窗口
- 在窗口中单击按钮完成之前,光标不会停止.请继续卸载
- 编辑弹出窗口的HTML的单击命令
- 如何禁用鼠标中键单击超链接以在新选项卡或新窗口中打开
- 单击按钮时的窗口属性
- 单击或取消选中复选框时,如何创建弹出的自定义窗口
- 打开'选择文件'窗口单击锚链接(跳过单击'选择文件'按钮)
- 如何在显示多个标记时单击另一个标记时关闭信息窗口
- 即使我单击“确定”,模型弹出窗口扩展器仍保持打开状态
- 在上下文菜单项单击上显示侧边栏/弹出窗口的最佳方法是什么
- 如何通过单击数据在新窗口上显示TableView数据
- 单击弹出窗口中的按钮后重定向到页面
- HTML 框架 - 防止引导弹出窗口在用户单击正文时消失
- 图像映射区域无法触发单击事件.afer最大化寡妇或恢复窗口单击事件触发
- 确认删除窗口-单击“删除”或“取消”时删除记录
- 需要关闭花哨框按钮上的当前窗口单击