У меня возникла проблема при попытке использовать элементы маркера SVG в визуализации на основе SVG. Я добавляю свои изменения в веб-приложение, которое включает базовый тег на каждой странице, поэтому любые ссылки на файлы CSS, файлы javascript и т.д. Могут быть относительными.
У меня есть пример кода ниже, который воспроизводит проблему. Существует элемент линии и определенный элемент маркера. Элемент маркера ссылается на строку в свой атрибут "маркер-конец", через uri и id маркера. Без базового тега стрелка отображается в порядке. С базовым тегом он не отображается. Причина в том, что базовый тег изменяет способ разрешения URL-адресов браузером.. даже для простого URL-адреса, основанного на идентификаторе, указанного в атрибуте конца маркера строки.
Есть ли способ обойти эту проблему, не удаляя базовый тег?
Я не могу удалить его, потому что его использование довольно укоренилось в продукте, над которым я работаю. Мне нужно поддерживать Firefox, Chrome и IE9 + для моего webapp. Проблема с Firefox и хромом. IE работает отлично (т.е. Отображает маркеры стрелок).
<html>
<head>
<base href=".">
<style>
.link { stroke: #999; stroke-opacity: .6; }
marker#arrow { fill: black; }
</style>
</head>
<body>
<svg width="100%" height="100%">
<defs>
<marker id="arrow" viewBox="0 -5 10 10" refX="0" refY="0" markerWidth="20" markerHeight="20" orient="auto">
<path d="M0,-5L10,0L0,5"></path>
</marker>
</defs>
<line x1="100" y1="100" x2="333" y2="333" marker-start="url(#arrow)" class="link"></line>
</svg>
</body>
</html>