Ошибка довольно очевидна для меня. Что вы делаете:
var x = new ActiveXObject("Microsoft.XMLDOM");
x.extendIt = 42;
И он выдает (загадочную) ошибку, говорящую, что вы не можете расширить экземпляр ActiveXObject новым свойством.
Теперь ActiveXObject является хост-объектом, и известно, что он полон неопределенного поведения. Не расширяй это. Вместо этого используйте его.
var XMLHandler = {
XMLDOM: new ActiveXObject("Microsoft.XMLDOM"),
parseXMLFile: function(xmlFilePath) {
this.xmlFile = xmlFilePath;
this.XMLDOM.load(xmlFilePath);
},
getXMLFile: function () {
return this.xmlFile;
}
};
var xmlHandler = Object.create(XMLHandler);
xmlHandler.parseXMLFile(someFile);
(я исправил ваш код, вам понадобится шайба ES5 для поддержки устаревшей платформы).
Конечно, если вы посмотрите на свой код сейчас, вы увидите, что вы создали прокси для .load
без причины. Вы также можете использовать объект XMLDOM напрямую.