Интерактивность SVG на iPad

#ipad #svg

#iPad #svg

Вопрос:

У нас есть код, который загружает SVG через Ajax, а затем взаимодействует с помощью Javscript. В Mozilla и Safari 5, запущенных на ПК, мы получаем события щелчка, как и ожидалось в SVG. При запуске Safari iPad мы не получаем события щелчка. Согласно руководству разработчика Safari:

http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariWebContent/CreatingContentforSafarioniPhone/CreatingContentforSafarioniPhone.html

похоже, нам следует «сделать элементы интерактивными». В руководстве Apple предлагается сделать это, добавив обработчик onclick . Проблема в том, что все наши элементы SVG уже имеют обработчик щелчков, настроенный с помощью jQuery, и они все еще не щелкают.

Может быть, это потому, что SVG не является HTML, а доступ к DOM SVG не является доступом к HTML DOM? (Мы уже говорили об этом раньше.)

Как мы можем заставить iPad прослушивать события в элементах SVG?

Ответ №1:

Насколько мне известно, существует проблема с safari в соответствии с этим javascript — который обрабатывает canvas / SVG, Кажется, что щелчок и касание — это не одно и то же. https://github.com/kangax/fabric.js/blob/master/dist/all.js И SVG 1.1 не имеет других событий, кроме событий щелчка http://www.w3.org/TR/SVG11/interact.html#PointerEventsProperty У меня такой же интерес, поэтому я ищу ту же информацию…

Ответ №2:

Я смог заставить события щелчка работать на Ipad, используя jquery и javascript. но моя проблема в том, что svg размывается на iPad.

Мой svg встроен в объект html, затем я просто получаю к нему доступ, вызывая обычное событие click, на которое ссылается функция, которая обращается к компоненту svg через:

 window.top.document.getElementById('elementId');
 

Комментарии:

1. Есть еще какие-нибудь подробности о том, как это на самом деле работает? Регистрируете ли вы обработчики событий касания для объектов, а затем переводите их в события щелчка, чтобы вручную повторно отправлять их в элементе SVG?