【问题标题】:custom event for mouse coordinates鼠标坐标的自定义事件
【发布时间】:2015-02-26 11:18:14
【问题描述】:

我正在创建 iFrame,在该 iFrame 脚本中,我需要在创建后捕获鼠标坐标(一开始)。我希望自定义事件可以实现。

我试过了

var myEvent = new Event('mouseC');

document.addEventListener('mouseC', function(e){
    console.log('my event is working');
    console.log('mouse x is '+e.pageX);
    console.log('mouse y is '+e.pageY);
});

document.dispatchEvent(myEvent);

控制台正在显示“我的事件正在运行”,但鼠标坐标未定义
我尝试将其包装在 window.onload 中,我还尝试了 screenXclientX... 始终未定义
创建后如何立即在新创建的 iFrame 中捕获鼠标坐标?

...顺便说一句,当鼠标移到新 iFrame 上时,mousemove 事件正在工作并写入坐标。
我可以以某种方式将鼠标移动 1px 以触发该事件吗?

【问题讨论】:

    标签: javascript iframe mouseevent custom-events


    【解决方案1】:
     iframElement = document.getElementBy...("...");
     document.addEventListener("click", function(evt,iframElement){
    
     var x = evt.pageX - iframElement.offset.left;
     var y = evt.pageY - iframElement.offset.top;
    
     console.log(x+" , "+y);
    
    });
    

    它可能会起作用

    【讨论】:

    • 不,我需要从 iFrame 中捕获它……而不是在它之外。
    【解决方案2】:
    var value =parent.frames[FRAME_NAME].frameElement.offsetParent;
    var x = 0, y = 0;
    while (value)
    {
    x += value .offsetLeft;
    y += value .offsetTop;
    value = value .offsetParent;
    //console x anf y...
    }
    

    控制台x和y可以得到鼠标在iframe中的坐标。

    【讨论】:

    • 我收到此错误:“未捕获的安全错误:阻止了具有来源“chrome-extension://xxxx......”的框架访问具有来源“stackoverflow.com”的框架. 请求访问的框架有一个“chrome-extension”的协议,被访问的框架有一个“http”的协议。协议必须匹配。”
    猜你喜欢
    • 2016-12-09
    • 1970-01-01
    • 2012-05-03
    • 2021-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    • 1970-01-01
    相关资源
    最近更新 更多