JQuery превратить HREF в XLink: HREF - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь реализовать следующее переписывание ссылок внутри SVG:

<a href="/node/1">link title</a>

до

<a xlink:href="/node/1">link title</a>

Поскольку ссылки такого типа не будут работать в сафари без части XLINK.

Я пытался изменить представления drupal, которые генерируют эти ссылки для моего сайта, но система из соображений безопасности пропускает все атрибуты, и ссылки печатаются только как href.

Мой единственный вариант - изменить результат с помощью , но пока я не добился успеха.

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Используйте функцию .attr(), тогда вы сможете добавлять любые атрибуты

$(function(){
  $("body a").each(function(){
    var aHref = $(this).attr("href");
    $(this).attr("xlink:href", aHref);
  })
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="/node/1">link title</a>
<a href="/node/1">link title</a>
<a href="/node/1">link title</a>
0 голосов
/ 02 мая 2018

Просто зациклите элементы a и измените их. В простом javascript это проще, чем в jQuery.

var elements = document.getElementsByTagName("a");
for (var i = 0; i < elements.length; i++) {
    elements[i].setAttributeNS("http://www.w3.org/1999/xlink", "href", elements[i].href);
}
<svg>
    <a href="/node/1"><text y="20">link title</text></a>
</svg>
...