弹出窗口打开时,Chrome扩展程序键盘命令会触发两次

时间:2014-03-10 02:45:04

标签: javascript google-chrome-extension

在以下Chrome扩展程序中,按下快捷键时,我会收到两次键盘命令,但仅在浏览器弹出窗口打开时才会收到。以下是您复制它的方式:

  1. 安装以下Chrome扩展程序。
  2. 导航至Chrome扩展程序页面
  3. 滚动到底部,然后点击“键盘快捷键”
  4. 将分机的快捷方式设置为Alt + Shift + S
  5. 在扩展程序页面中,单击扩展程序的“后台页面”链接以打开后台页面控制台。
  6. 按Alt + Shift + S.您将看到“命令”被记录一次。
  7. 现在打开安装扩展程序时应该出现的浏览器弹出窗口。按Alt + Shift + S.
  8. 转到后台页面控制台,您会看到“命令”已记录两次。
  9. 以下是代码:

    manifest.json

    {
        "manifest_version": 2,
    
        "name": "Test",
        "version": "1.0",
    
        "background": {
            "scripts": ["background.js"]
        },
    
        "browser_action": {
            "default_popup": "popup.html"
        },
    
        "commands": {
            "command": {
                "suggested_key": {
                    "default": "Alt+Shift+S"
                },
                "description": "My command"
            }
        }
    }
    

    background.js

    chrome.commands.onCommand.addListener(function (command) {
        console.log(command);
    });
    

    popup.html不需要存在。为什么会这样?我有一个黑客,我不接受命令,如果它自上一个命令以来不到50毫秒,但我不想使用黑客。

1 个答案:

答案 0 :(得分:0)

看起来这是Chrome的GTK版本的一个错误。您可以在此处查看我提交的错误报告:https://code.google.com/p/chromium/issues/detail?id=355559

这不会在GTK构建中修复,因为Chrome无论如何都要切换到Aura。