画布处理事件,然后传递给iframe ....?

时间:2017-10-21 02:21:01

标签: javascript canvas dispatchevent pointer-events

尽管整个晚上都在搜索,我仍然没有找到解决方法。我在DOM中有以下布局:

<div class="kort_miðja_úti">
  <iframe class="kort_miðja" frameborder="0" width="100%" height="100%" src="...."></iframe>
  <canvas class="kort_canvas"></canvas>
</div>

画布位于前面,充当来自不同站点的交互式地图上的透明覆盖层。因此,当有鼠标事件时,它首先得到它。它需要对鼠标事件做一些事情,然后将它们转发到地图上,这样地图也可以处理它们。这就是所有麻烦开始的地方。

我首先在画布中设置了一个调试事件处理程序,它转发到iframe,并在iframe中添加一个调试事件处理程序。正如预期的那样,画布获得它的第一个,然后是iframe。大。

现在我删除iframe上的调试处理程序,因为我希望地图做自己的事情。我点击,画布处理程序关闭,然后......没有。没有地图响应。哦,呃,它会去iframe本身,而不是它的内容。事件应该真的在iframe的某个地方深入了解,并且事件不会传播 up DOM。

好的,所以我试着找到哪一个。我将在获取事件后关闭画布的指针事件,在screenX和screenY上调用document.elementFromPoint,然后重新启用指针事件。并且...这给了我iframe对象,而不是内部的对象。嗯,那没有用。

所以我尝试从iframe,.contentDocument.elementfromPoint。但这给我一个跨站点脚本错误。

所有这一切都可能是一个没有实际意义的因素,因为我听说放大手机会搞砸elementFromPoint。

好吧,我很难过。有没有办法做到这一点?我和地图如何处理鼠标事件?

0 个答案:

没有答案