На момент написания статьи (январь 2019 г.) анимация stroke-dashoffset
не поддерживалась в Microsoft Edge, и учитывая послужной список Microsoft и быстрые улучшения Edge, можно ожидать, что она не будет работать в ближайшее время.
Пожалуйста, обратитесь к https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/6493460/
К сожалению, моя рекомендация правильно отображать анимацию в браузерах, отличных от IE / Edge, и показывать конечный результат только в IE / Edge (чтобы они по-прежнему видели что-то на странице). Чтобы определить текущий браузер пользователя, обратитесь к Как определить браузер Safari, Chrome, IE, Firefox и Opera? .
Если Вы хотите, чтобы браузер представил Ваш XML
как XML
, это должно быть в своем собственном документе, как iframe
, или a frame
. DIV
не сделает задания!
Кроме того, в HTTP
заголовок запроса, который служит iframe
необходимо отправить Content-Type: text/xml
, таким образом, Браузер может понять, что это содержание XML
.
Но, если истинно необходимо видеть его в DIV, необходимо будет создать себя XML
рендеринг функции XML2HTML
. Можно использовать HTML
PRE
тег для этого, если Ваш XML
строка уже отформатирована (разрывы строки и вкладки). В этом случае необходимо будет заменить <
кому: >
в XML
строка.
Заключение: The browser
не может представить XML
и HTML
в том же документе. При необходимости в нем у Вас просто есть к обходному решению он.
Вот функция для Вас:
<script type="text/javascript">
<!--
function xml_to_string(xml_node)
{
if (xml_node.xml)
return xml_node.xml;
else if (XMLSerializer)
{
var xml_serializer = new XMLSerializer();
return xml_serializer.serializeToString(xml_node);
}
else
{
alert("ERROR: Extremely old browser");
return "";
}
}
// display in alert box
alert(xml_to_string(my_xml));
// display in an XHTML element
document.getElementById("my-element").innerHTML = xml_to_string(my_xml);
-->
</script>
Выберите свой XML использование Ajax и просто поместите результат в a textarea
. Разработайте текстовую область любым путем, Вы хотите.
Когда Вы не хотите использовать целую платформу JavaScript только для этого...
function insertLiteral(literalString, targetElement)
{
var textNode = document.createTextNode(literalString);
targetElement.appendChild(textNode)
return textNode;
}
// test it (for the example, I assume #targetDiv is there but empty)
var xmlString = "<this><is_some><xml with='attributes' /></is_some></this>";
var targetElement = document.getElementById("targetDiv");
var xmlTextNode = insertLiteral(xmlString, targetElement);
#targetDiv
мог быть разработан с помощью CSS:
#targetDiv {
font-family: fixed;
white-space: pre;
}
Одна техника состояла бы в том, чтобы использовать два iframe элемента с набором атрибута src к соответствующему XML-файлу, доступному с сервера (предполагающий, что это выставляется через виртуальный каталог):
<iframe src="/myapp/Document1.xml"><iframe src="/myapp/Document2.xml">
С другой стороны, Вы могли потенциально использовать запрос типа AJAX, чтобы получить xml документы и затем встроить их в документ HTML динамично с помощью чего-то как:
getElementById("myDiv").innerText = ajax.response;
Проблема состоит в том, что необходимо выйти из символов, которые синтаксический анализатор HTML интерпретирует как разметка: и, и в некоторых случаях "и'
Базовый JavaScript не предоставляет это Вам, но многие дополнительные библиотеки делают.
Например, Прототип имеет: http://www.prototypejs.org/api/string/escapeHTML