Показать сообщение отдельно
  #7 (permalink)  
Старый 06.08.2014, 14:21
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Я же говорю, jQuery не при чем, преобразование выполняет браузер. При изменении доктайпа документ не перестанет быть text/html контентом, сервер должет отдавать заголовок content-type: application/xml+xhtml, но это никто в здравом уме не использует.

Когда мы вставляем inline-svg в text/html контент с помощью innerHTML браузер выполняет преобразования и ничего с этим мы поделать не можем. В примере ниже атрибуты WIDTH и HEIGHT при вставке в документ без использования jQuery преобразуются в нижний регистр:
<!DOCTYPE html>
<html lang="en">
<head>
    <title>…</title>
    <meta charset="UTF-8">
</head>
<body>
    <script>
        var inlineSVG = '<svg WIDTH="300" HEIGHT="200"><polygon points="100,10 40,198 190,78 10,78 160,198" style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;" /></svg>',
            tmpContainer = document.createElement('div'),
            svgElement;

        tmpContainer.innerHTML = inlineSVG;
        svgElement = document.body.appendChild(tmpContainer.firstChild);
        tmpContainer = null;

        alert([
            svgElement.attributes[0].name,
            svgElement.attributes[1].name
        ]);
    </script>
</body>
</html>

Последний раз редактировалось Octane, 06.08.2014 в 16:09.
Ответить с цитированием