8

セキュリティへの影響により、JavaScript でこれを行うことはできません。Chrome からこれを行うことができる他のタイプの Google 拡張機能/開発 API はありますか?

4

1 に答える 1

4

はい、マウスを制御する Pointer Lock API があります。Pointer Lock API のリファレンスとしてこのコードを確認してください。

デモンストレーション

http://www.google.co.in/に移動し、Google のロゴをクリックします。このコードをカスタマイズして、マウスの動きとアクションを制御できます。

マニフェスト.json

コンテンツ スクリプトを追加し、ページのすべての権限を設定します。

{
    "name":"Pointer Lock",
    "description":"http://stackoverflow.com/questions/14896728/chrome-extension-to-control-mouse-keyword",
    "version":"1",
    "manifest_version":2,
    "content_scripts": [
        {
          "matches": ["http://www.google.co.in/"],
          "js": ["myscript.js"]
        }
    ],
    "permissions":["<all_urls>"]
}

myscript.js

このコードはポインタの動きをロックします。

//Check whether browser supports locking or not
var havePointerLock = 'webkitPointerLockElement' in document;
//Get some random element in http://www.google.co.in/ page
var element = document.getElementById("hplogo");
//Bind an event Listener
element.addEventListener("click", function () {
    if (havePointerLock) {
        // Ask the browser to lock the pointer
        element.requestPointerLock = element.webkitRequestPointerLock;
        element.requestPointerLock();
        //Register lock change callback
        document.addEventListener('webkitpointerlockchange', changeCallback, false);
        //Register callback for all errors
        document.addEventListener('webkitpointerlockerror', errorCallback, false);
    } else {
        alert("Your browser does not support Pointer Lock, Please Upgrade it");
    }
});

function moveCallback(e) {
    //Track all mouse movements
    console.log("Mouse Moved ...");
    console.log(e.webkitMovementX);
    console.log(e.webkitMovementY);
}

function changeCallback() {
    //Check for element whether locked is expected element or not
    if (document.webkitPointerLockElement == element) {
        // Pointer was just locked
        // Enable the mousemove listener
        document.addEventListener("mousemove", moveCallback, false);
    } else {
        // Pointer was just unlocked
        // Disable the mousemove listener
        document.removeEventListener("mousemove", moveCallback, false);
    }
}

function errorCallback(e) {
    //Log Errors
    console.log(e);
}

参照

于 2013-02-17T11:10:07.177 に答える