Chrome扩展程序可存储用户按下的按键

时间:2016-05-20 16:05:39

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

我正在构建一个chrome扩展,它将存储用户按下的所有键,并将这些键存储到目录中的文本文件中。

我想跟踪用户按键,无论他搜索什么,或者我希望将其存储到文本文件中。

现在我已经将关键字存储在一个数组中,并在需要时提醒它。阵列没有得到警报。

这是我的JavaScript文件:

var your_array = [];

document.addEventListener('DOMContentLoaded', function() {
    var checkPageButton = document.getElementById('checkPage');
    document.onkeydown = function(e) {
        var keyPress;

        if (typeof event !== 'undefined') {
            keyPress = event.keyCode;
        } else if (e) {
            keyPress = e.which;
        }

        your_array.push(String.fromCharCode(keyPress));

        return false; // Prevents the default action
    };

    checkPageButton.addEventListener('click', function() {
        alert(your_array);
        die;
    }, false);

}, false);

...这就是我的HTML文件:

<!doctype html>
<html>
    <head>
        <title>Storing Keyword</title>
        <link rel='stylesheet' href='popup.css' />
        <script src="popup.js"></script>
    </head>
    <body>
        <h3>I can store your keywords</h3>
        <button id="checkPage">Really Show Me !</button>
    </body>
</html>

这是我的JSON清单文件:

{
    "manifest_version": 2,

    "name": "Keyword store",
    "description": "This extension will analyze a page using GTmetrix",
    "version": "1.0",

    "browser_action": {
        "default_icon": "avator/icon.png",
        "default_popup": "popup.html"
    },
    "permissions": [
        "activeTab"
    ]
}

问题在于警报出现,但会在几毫秒内自动关闭。

如果有人知道如何在文本文件中存储密钥,请让我知道这一点......

谢谢。

1 个答案:

答案 0 :(得分:0)

  

问题在于警报出现,但会在几毫秒内自动关闭。

Chrome弹出广告无法在焦点丢失后继续存在。

您的alert()会导致出现对话框,该对话框失去焦点并关闭/销毁页面。

改为使用console.loginspect the popup for debugging

  

如果有人知道如何在文本文件中存储密钥,请让我知道

最近有一个问题我answered rather extensively关于选项的问题。如果您需要持久存储,请使用chrome.storage API。如果您需要专门输出文件,则无法从扩展程序获得R / W访问权限,但您可以提供“下载”文件。

  

我想跟踪用户按键,无论他搜索什么或类型

那是不可能的;您的扩展程序现在只会获得有关弹出窗口中击键的通知。没有用于全局拦截按键的扩展API。最多,您可以在所有选项卡中注入类似的脚本,但这也不会让您在地址/搜索栏中输入类型。