Наш инструмент будет выглядеть ниже
В настоящее время этот инструмент отлично работает в IE и Firefox. Теперь у нас есть требование поддержать его и для Chrome.
Внутри html файла JavaScript мы выполняем преобразование XML с использованием XSLT файла. Для загрузки XML мы создаем объект DOM для разных браузеров, как показано ниже.
if(window.ActiveXObject) {
XMLObject = new ActiveXObject('Microsoft.FreeThreadedXMLDOM');
}
else {
XMLObject = document.implementation.createDocument("", "", null);
}
Но для Chrome мы не можем найти код совместимого DOM-объекта. При поиске в Интернете выяснилось, что приведенный ниже код будет работать в Chrome.
XMLObject =new XMLHttpRequest();
Пробовал вышеуказанный метод, но он выбрасывает ошибку "Запросы на кросс-начало поддерживаются только для HTTP".
Кроме того, при загрузке XML файла обнаруживается, что браузер не дает правильный путь к имени файла, вместо этого он дает как C:\fakepath\Sample.xml
.
Любой другой способ решить эту проблему?
Если вы хотите использовать XMLHttpRequest для доступа к файлам из локальной файловой системы, вам необходимо запустить Chrome с параметром командной строки --allow-file-access-from-files
.
Version 29.0.1547.76 m
в Windows 8, запустив ее из командной строки с помощью следующей строкиchrome.exe --allow-file-access-from-files
и затем загруженный документ HTML из файловой системы можно использоватьXMLHttpRequest
просто отлично, чтобы загрузить документ XML из файловой системы.