События мыши в обходном пути svg для Microsoft Edge

Я загружаю файл SVG в тег <object> html-страницы. SVG содержит изображения с событиями мыши onclick, onmouseover и onmouseout. Я считаю, что они срабатывают так, как должны, в firefox и google-chrome.

Когда я загружаю страницу с помощью Microsoft Edge, я обнаруживаю, что:

  • onclick вроде не срабатывает,

  • onmouseover срабатывает много раз, когда я навожу мышь на изображение (и не только один раз),

  • onmouseout тоже ничего не делает.

Поиск проблемы в Google показывает, что я не единственный, кто сталкивается с проблемой Microsoft Edge, и что проблема старше.

Но есть ли обходные пути для такого рода проблем?


person highsciguy    schedule 13.09.2016    source источник
comment
Не загружайте SVG в элемент <object>. Просто поместите его на страницу.   -  person evolutionxbox    schedule 13.09.2016
comment
Хорошо, была причина, по которой он не был встроенным: SVG большой и находится внутри <li> и некоторых <div>. Мне нужно увеличить его с помощью css, чтобы он соответствовал высоте экрана и имел возможность изменять его горизонтальное положение. В других браузерах у меня это работало только так. Возможно, я могу попробовать ваше предложение в качестве решения для конкретного браузера, если оно работает в Edge. Однако это подразумевает множество изменений на стороне javascript. Может быть, есть другой тег, которым я могу попробовать заменить <object>?   -  person highsciguy    schedule 13.09.2016
comment
Не совсем. Чтобы с SVG можно было взаимодействовать, они должны быть отделены от DOM.   -  person evolutionxbox    schedule 13.09.2016
comment
Ну, я вижу содержимое svg в DOM-инспекторе firefox и chrome...   -  person highsciguy    schedule 13.09.2016
comment
Я провел несколько экспериментов и обнаружил, что тег <object> не является решающей или, по крайней мере, не единственной проблемой. Теперь я загружаю svg в тег <div>. Таким образом, события мыши по-прежнему не в порядке.   -  person highsciguy    schedule 13.09.2016
comment
Можете ли вы опубликовать пример кода?   -  person evolutionxbox    schedule 13.09.2016
comment
@highsciguy Вы нашли обходной путь? Я также столкнулся с той же проблемой (специфичной для браузера Microsoft Edge)?   -  person SE_User    schedule 17.01.2017
comment
@highsciguy Вы когда-нибудь находили способ исправить это?   -  person souzan    schedule 18.09.2018
comment
Нет другого обходного пути, кроме очевидного отказа от IE из-за того, что он не соответствует чему-либо.   -  person highsciguy    schedule 18.09.2018


Ответы (1)


Я обнаружил, что для подэлементов svg, в которых я установил для css значение {pointer-events: bounding-box}, bounding-box не было параметром css в Edge. Я изменил css для этих элементов на {pointer-events: visible} для Edge, а затем мои события мыши сработали так же, как в Chrome и Firefox.

person Summer    schedule 05.11.2018