XMLDOM с Microsoft Edge

У меня очень простая, но неприятная проблема с XMLDOM и браузером Microsoft Edge. Я просматривал текущую документацию, но ничего не вижу о функциональности этого наследия. В нашей кодовой базе есть функция, работа которой состоит в том, чтобы возвращать объект XMLDOM. Функция делает это -

if(activeXDetected()) {
   domObject = new ActiveXObject("Microsoft.XMLDOM");
} else {
   domObject = document.implementation.createDocument(...);
}

Я не ожидал поддержки ActiveX в Edge, но я надеялся, что шаблон вернется к тому же шаблону, который используется почти во всех других браузерах (document.implementation....). Однако в этом случае использования с граничным браузером в возвращаемом объекте вообще нет метода loadXML, и, насколько я могу судить, то, что вы возвращаете (и вы возвращаете объект), похоже, является общим домом объект.

Как вернуть объект XMLDOM со всеми поддерживаемыми методами и т.д. др.


person Carlo Razzeto    schedule 28.07.2015    source источник


Ответы (1)


что такое activeXDetected()?

вместо этого используйте обнаружение функций

if(ActiveXObject) {
   domObject = new ActiveXObject("Microsoft.XMLDOM");
} else {
   domObject = document.implementation.createDocument(...);
}
person Jaromanda X    schedule 28.07.2015
comment
Код такой - return (window.ActiveXObject || window.ActiveXObject !== undefined); эта методология требуется для правильного обнаружения в IE11. Ваша опубликованная версия на самом деле не работала в IE11, вам действительно нужно выполнить типизированную проверку на неопределенность. Я почти уверен, что сбой при обнаружении активного x в Edge является правильным и правильным. - person Carlo Razzeto; 29.07.2015