Документ не перехватывает события, возникшие во встроенном документе - PullRequest
4 голосов
/ 31 мая 2011

У меня есть HTML, содержащий встроенный SVG с тегом объекта. Я регистрирую прослушиватели событий для mousemove в глобальном документе, но когда происходит перемещение мыши по элементу внутри внедренного документа SVG, обратный вызов, зарегистрированный в глобальном документе для mousemove, не вызывается. Кажется, что проблема заключается в встраивании, но я не могу понять, в чем проблема, я думал, что документ SVG является потомком глобального документа, и глобальный документ должен получить все события. Может кто-нибудь помочь? Разве глобальный документ и документ SVG не связаны?

1 Ответ

0 голосов
/ 05 апреля 2012

Я пробовал следующее:

<div style="position:relative; background-color:red; height:300px">
    <object data="http://upload.wikimedia.org/wikipedia/commons/c/c7/SVG.svg" type="image/svg+xml" height="300" width="400" style="position:absolute;z-index:1;" 
        onclick="console.log('clickSVG');" 
        onmousemove="console.log('moveSVG');"
        ></object>
    <div style="height:150px; background-color:blue; z-index:2;"
        onclick="console.log('clickDIV');" 
        onmousemove="console.log('moveDIV');"></div>
</div>

С идеей, что div, расположенный выше объекта, может перехватывать события, но это не так. Я действительно не знаю почему; возможно, стоит попробовать полностью создать объект SVG в JS и напрямую подключить обработчики.

Edit: Извиняюсь за то, что выкопал старый пост, я понял, что немного поздно; Надеюсь, это еще может кому-нибудь помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...