3

Chromeの拡張機能を作成したいのですが、拡張機能アイコンでの特定のマウスアクションが特定の応答をトリガーします。

たとえば、アイコンがクリックされたとき、ダブルクリックされたとき、スクロールクリックされたとき、および1でスクロールされたときのアイコンの動作が異なるようにします。

イベントリスナーを拡張機能アイコンにアタッチするにはどうすればよいですか?アイコンをアドレスバーに表示する必要があるのか​​、拡張機能バーに表示する必要があるのか​​は関係ありません。

1.私は実際、「スクロールされている」という1つのイベントに焦点を合わせています。これは、ウィンドウにフォーカスがなくてもトリガーできるのはこれだけだからです。しかし、私はより一般的な質問の方が良いと判断しました。

4

2 に答える 2

5

シングルクリックとダブルクリックを追跡できます

a)ブラウザ アクション

b) Chrome 拡張機能を使用したページ アクション。

デフォルトでは、Chrome にはブラウザページアクション用のシングル マウス クリック イベント リスナーがあり、これを拡張することでダブル クリック イベントもキャプチャできます。

ブラウザ アクションのシングル クリック イベントとダブル クリック イベントのデモ

このサンプル コードは、シングル クリックとダブル クリックのブラウザー アクション アイコンを変更します。リスナーセッターを使用して、同じことをページ アクションに拡張できます。

マニフェスト.json

マニフェストに登録されたブラウザー アクションとバックグラウンド スクリプト

{
    "name": "Mouse Clicks",
    "version": "0.0.1",
    "manifest_version": 2,
    "description": "This demonstrates how mouse clicks are tracked",
    "background":{
        "scripts":["background.js"]
    },
    "browser_action":{
        "default_icon":"normal.png"
    }

}

background.js

//Set click to false at beginning
var alreadyClicked = false;
//Declare a timer variable
var timer;

//Add Default Listener provided by chrome.api.*
chrome.browserAction.onClicked.addListener(function (tab) {
    //Check for previous click
    if (alreadyClicked) {
        //Yes, Previous Click Detected

        //Clear timer already set in earlier Click
        clearTimeout(timer);
        console.log("Double click");

        //Change Icon
        chrome.browserAction.setIcon({
            "path": "double.png"
        }, function () {
            console.log("Changed Icon for Double Click");
        });

        //Clear all Clicks
        alreadyClicked = false;
        return;
    }

    //Set Click to  true
    alreadyClicked = true;

    //Add a timer to detect next click to a sample of 250
    timer = setTimeout(function () {
        //No more clicks so, this is a single click
        console.log("Single click");

        //Chane Icon
        chrome.browserAction.setIcon({
            "path": "single.gif"
        }, function () {
            console.log("Changed Icon for Single Click");
        });

        //Clear all timers
        clearTimeout(timer);

        //Ignore clicks
        alreadyClicked = false;
    }, 250);
});

Browser action\Page Action アイコンは、幅と高さを最大 19 ディップ (デバイスに依存しないピクセル) にすることができます。大きなアイコンは収まるようにサイズ変更されますが、理想的には、これらの小さな画像ではできませんscroll clickscroll on

さらに情報が必要な場合はお知らせください

于 2012-12-11T11:08:13.670 に答える