选择第一次单击浏览器操作时将打开的弹出窗口

亚什万斯

我开发了一个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");
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何防止过渡元素在每次浏览器第一次刷新或打开网页时过渡?

来自分类Dev

弹出窗口仅在第一次单击时显示div

来自分类Dev

将其关闭后,第一次单击时不显示弹出窗口

来自分类Dev

当放置在弹出窗口中时,第一次单击时不会触发按钮单击事件

来自分类Dev

EaselJs,“位图”在第一次加载浏览器时无法显示

来自分类Dev

如何从链接打开Android应用程序而无需要求用户在第一次浏览器或应用程序之间进行选择

来自分类Dev

单击第一次返回浏览器后无法使Iron路由器正常工作

来自分类Dev

第一次单击时未显示日期选择器

来自分类Dev

在防火墙弹出之前的第一次启动时显示弹出窗口

来自分类Dev

chrome扩展程序弹出窗口可以知道是否是第一次打开吗?

来自分类Dev

传单弹出窗口在第一次关闭时清除内容

来自分类Dev

用户单击浏览器操作并弹出窗口时如何执行操作(Chrome扩展程序)

来自分类Dev

谷歌浏览器打印预览不会第一次加载页面

来自分类Dev

图片在源中,但第一次不在浏览器中显示

来自分类Dev

第一次加载任何浏览器都花费太长时间

来自分类Dev

WPF数据网格在第一次打开窗口时不显示项目

来自分类Dev

单击“ Chrome扩展程序”浏览器操作按钮时不显示弹出窗口

来自分类Dev

如何仅在第一次单击时设置slideToggle打开div?

来自分类Dev

第一次单击后,如何让此文本框在浏览器中显示不同的页面(winforms C#)

来自分类Dev

OnClick 侦听器仅在第一次单击时更新回收器视图

来自分类Dev

仅在第一次单击时选择所有文本

来自分类Dev

UISearchController searchBar在第一次单击时消失

来自分类Dev

函数在第一次单击时未执行

来自分类Dev

HTML页面第一次加载和第二次加载不同(谷歌浏览器)

来自分类Dev

第一次单击HTML输入字段微调器时,如何更改显示的值?

来自分类Dev

在第一次分页时选择状态

来自分类Dev

在第一次分页时选择状态

来自分类Dev

有选择地防止调试器在第一次机会异常时停止

来自分类Dev

多次快速选择刷新将允许在第一次单击时添加但从列表中选择后不起作用

Related 相关文章

  1. 1

    如何防止过渡元素在每次浏览器第一次刷新或打开网页时过渡?

  2. 2

    弹出窗口仅在第一次单击时显示div

  3. 3

    将其关闭后,第一次单击时不显示弹出窗口

  4. 4

    当放置在弹出窗口中时,第一次单击时不会触发按钮单击事件

  5. 5

    EaselJs,“位图”在第一次加载浏览器时无法显示

  6. 6

    如何从链接打开Android应用程序而无需要求用户在第一次浏览器或应用程序之间进行选择

  7. 7

    单击第一次返回浏览器后无法使Iron路由器正常工作

  8. 8

    第一次单击时未显示日期选择器

  9. 9

    在防火墙弹出之前的第一次启动时显示弹出窗口

  10. 10

    chrome扩展程序弹出窗口可以知道是否是第一次打开吗?

  11. 11

    传单弹出窗口在第一次关闭时清除内容

  12. 12

    用户单击浏览器操作并弹出窗口时如何执行操作(Chrome扩展程序)

  13. 13

    谷歌浏览器打印预览不会第一次加载页面

  14. 14

    图片在源中,但第一次不在浏览器中显示

  15. 15

    第一次加载任何浏览器都花费太长时间

  16. 16

    WPF数据网格在第一次打开窗口时不显示项目

  17. 17

    单击“ Chrome扩展程序”浏览器操作按钮时不显示弹出窗口

  18. 18

    如何仅在第一次单击时设置slideToggle打开div?

  19. 19

    第一次单击后,如何让此文本框在浏览器中显示不同的页面(winforms C#)

  20. 20

    OnClick 侦听器仅在第一次单击时更新回收器视图

  21. 21

    仅在第一次单击时选择所有文本

  22. 22

    UISearchController searchBar在第一次单击时消失

  23. 23

    函数在第一次单击时未执行

  24. 24

    HTML页面第一次加载和第二次加载不同(谷歌浏览器)

  25. 25

    第一次单击HTML输入字段微调器时,如何更改显示的值?

  26. 26

    在第一次分页时选择状态

  27. 27

    在第一次分页时选择状态

  28. 28

    有选择地防止调试器在第一次机会异常时停止

  29. 29

    多次快速选择刷新将允许在第一次单击时添加但从列表中选择后不起作用

热门标签

归档