设计Chrome扩展程序,坚持Javascript实现

时间:2017-04-02 08:38:46

标签: javascript html google-chrome google-chrome-extension

我试图设计一个Chrome扩展程序,热键和#34;重复标签&#34 ;;除了在这个特定的编码领域获得经验之外我没有理由设计这个,所以如果那里已经有了扩展,我就不会那样做了。

我对清单有了基本的想法,如果不准确,我就相当接近了。但是,Javascript完全让我失望。我对回调函数进行了一些研究,并且有点了解情况,但它仍然是一个非常困难的过程。我没有足够的信息来调试。

我的逻辑是:在清单中定义一个热键动作,在后台脚本中监听它。识别后,执行代码(chrome.tabs.duplicate(tabID))。但是,当我保存代码并使用解压缩或打包在Chrome中的扩展程序时,键盘快捷方式不执行任何操作。我尝试更改各种输入的快捷方式,我重新启动了浏览器并尝试打包和解压缩,我已经调出详细信息选项卡,菜单中没有识别出监听器,尽管我的脚本似乎正在运行。

有人能指出我正确的方向吗?我已经在这工作了6到7个小时,似乎无法找到解决方案。提前感谢您的任何时间或精力。

相关代码:

{
    "manifest_version": 2,

    "author": "whims1",
    "name": "dupliTab",
    "version": "1.0",

    "browser_action": {
        "default_icon": "icon.png",
        "default_popup": "popup.html",
        "default_title": "Ctrl+Shift+F"
    },

    "background": {
        "scripts": ["duplicate.js"],
        "persistent": false
    },

    "permissions": [
        "activeTab"
    ],

    "commands": {
        "toggle-feature-duplicate": {
            "suggested_key": {
                "default": "Ctrl+Shift+F",
                "mac": "Command+Shift+F"
            },
            "description": "Duplicate the active tab"
        },

        "_execute_browser_action": {
            "suggested_key": {
                "windows": "Ctrl+Shift+F",
                "mac": "Command+Shift+F",
                "chromeos": "Ctrl+Shift+F",
                "linux": "Ctrl+Shift+F"
            }
        }
    }
}

duplicate.js:

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

function loadRun() {
    $.getScript("run.js");
    run();
}

run.js:

function run() {    
    chrome.tabs.query({active:true, currentWindow: true}, function(arrayOfTabs) {
        var currentTabId = arrayOfTabs[0].id;   
    });
    chrome.tabs.duplicate(currentTabId);
}

HTML弹出窗口:

<!DOCTYPE html>
<html>
    <head>
        <title>Popup</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
        <h1>DupliTab</h1>
        <p>Press Ctrl+Shift+F to duplicate the active tab.</p>
    </body>
</html>

0 个答案:

没有答案