Chrome扩展程序可控制鼠标/关键字

时间:2013-02-15 14:22:05

标签: google-chrome google-chrome-extension google-chrome-devtools

鉴于安全隐患,您无法在JavaScript中执行此操作。是否有其他类型的Google扩展程序/开发API可以让我从Chrome执行此操作?

1 个答案:

答案 0 :(得分:4)

是的,有一个Pointer Lock API来控制鼠标,请将此代码作为Pointer Lock API的参考。

示范

转到http://www.google.co.in/并点击Google徽标,您可以自定义此代码来控制鼠标移动和操作。

的manifest.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);
}

参考

相关问题