【问题标题】:Chrome Extension to control mouse/keyword用于控制鼠标/关键字的 Chrome 扩展程序
【发布时间】:2013-01-31 13:08:41
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    是的,有一个 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);
    }
    

    参考

    【讨论】:

    • 啊,我想在屏幕上移动光标。
    • 我怀疑以编程方式移动光标是否会得到支持,似乎太危险了。
    猜你喜欢
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    • 2012-06-14
    • 1970-01-01
    • 2015-09-15
    • 2020-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多